--- recepies/lxc/lxc-watchdog.sh 2011/01/22 16:07:46 234 +++ recepies/lxc/lxc-watchdog.sh 2011/03/24 16:40:46 243 @@ -47,8 +47,9 @@ } lxc_ip() { - ( grep lxc.network.ipv4 /var/lib/lxc/$name/config | cut -d= -f2 || \ - grep address $(lxc_rootfs $name)/etc/network/interfaces | sed 's/.*address //' ) | \ + ( grep lxc.network.ipv4 /var/lib/lxc/$name/config | grep -v '^#' | cut -d= -f2 || \ + grep address $(lxc_rootfs $name)/etc/network/interfaces | grep -v '^#' | sed 's/.*address //' ) | \ + head -1 | \ sed -e 's/ *//g' -e 's/\/.*$//' } @@ -70,6 +71,7 @@ $rootfs/etc/rc?.d/*umountroot \ $rootfs/etc/rc?.d/*hwclock* \ $rootfs/etc/rc?.d/*udev* \ + $rootfs/etc/rc?.d/*checkfs* \ 2>/dev/null | xargs -i rm -v {} echo $1 > $rootfs/etc/hostname @@ -131,6 +133,7 @@ if ! lxc-info -n $name | grep RUNNING ; then lxc_log "$name start" + mount $rootfs -o remount,rw # fix debian upgrade which remounts dir ro lxc-start -n $name -o /tmp/${name}.log -d lxc-wait -n $name -s RUNNING lxc-info -n $name @@ -145,8 +148,14 @@ while true; do vps_utmp=${rootfs}/var/run/utmp tasks=`wc -l < /cgroup/${name}/tasks` + stop_on=1 # init + sulogins=`lxc-ps --name backuppc | grep sulogin | wc -l` + if [ "$sulogins" -gt 0 ] ; then + stop_on=`expr $stop_on + $sulogins` + fi + test -z "$tasks" && exit 1 - if [ "$tasks" -eq 1 ]; then + if [ "$tasks" -eq $stop_on ]; then runlevel="$(runlevel ${vps_utmp})" lxc_log "$name runlevel $runlevel" @@ -174,7 +183,7 @@ ;; esac else - lxc_log "$name $tasks tasks" + lxc_log "$name $tasks tasks $sulogins console" fi # time of 5 minutes on it JUST IN CASE...