recent Debian has /var/run as symlink
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 26 Jun 2011 15:00:40 +0000 (15:00 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 26 Jun 2011 15:00:40 +0000 (15:00 +0000)
git-svn-id: svn://svn.rot13.org/sysadmin-cookbook@264 191e9f34-6774-4a6d-acfc-7664dacd4a2a

recepies/lxc/lxc-watchdog.sh

index 2dbe91d..1ae6fad 100755 (executable)
@@ -145,9 +145,11 @@ lxc_start() {
 lxc_watchdog() {
 name=$1
 rootfs=$(lxc_rootfs $1)
+run=$rootfs/var/run
+test -L $run && run=$rootfs/`readlink $run` # recent Debian have symlink to /run
+cd $run || echo "can't cd watchdog into $run"
 
 while true; do
-       vps_utmp=${rootfs}/var/run/utmp
        tasks=`wc -l < /cgroup/${name}/tasks`
        stop_on=1 # init
        sulogins=`lxc-ps --name $name | grep sulogin | wc -l`
@@ -158,14 +160,14 @@ while true; do
        test -z "$tasks" && exit 1
        if [ "$tasks" -eq $stop_on ]; then
 
-               runlevel="$(runlevel ${vps_utmp})"
+               runlevel="$(runlevel utmp)"
                lxc_log "$name runlevel $runlevel"
 
                case $runlevel in
                N*)
                        # nothing for new boot state
                ;;
-               ??0)
+               ??0|unknown)
                        lxc_log "$name halt"
                        lxc-stop -n "${name}"
                        lxc-wait -n ${name} -s STOPPED
@@ -188,7 +190,7 @@ while true; do
        fi
 
        # time of 5 minutes on it JUST IN CASE...
-       inotifywait -qqt 300 ${vps_utmp}
+       inotifywait -qqt 300 utmp
 done
 
 lxc_log "$name watchdog exited"