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`
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
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"