--- recepies/lxc/lxc-watchdog.sh 2010/03/16 20:42:38 184 +++ recepies/lxc/lxc-watchdog.sh 2010/03/16 21:36:45 187 @@ -101,10 +101,14 @@ lxc-start -n $name -o /tmp/${name}.log -d lxc-wait -n $name -s RUNNING lxc-info -n $name - echo $name > /var/lib/lxc/${name}/on_boot + test -f /var/lib/lxc/${name}/on_boot || echo $name > /var/lib/lxc/${name}/on_boot fi } +lxc_log() { + echo `date +%Y-%m-%dT%H:%M:%S` $* +} + lxc_watchdog() { name=$1 rootfs=$(lxc_rootfs $1) @@ -116,20 +120,20 @@ if [ "$tasks" -eq 1 ]; then runlevel="$(runlevel ${vps_utmp})" - echo `date +%Y-%m-%dT%H:%M:%S` "$name runlevel $runlevel" + lxc_log "$name runlevel $runlevel" case $runlevel in N*) # nothing for new boot state ;; ??0) - echo "$name halt" + lxc_log "$name halt" lxc-stop -n "${name}" lxc-wait -n ${name} -s STOPPED break ;; ??6) - echo "$name reboot"; + lxc_log "$name reboot"; lxc-stop -n ${name} lxc-wait -n ${name} -s STOPPED lxc-start -d -n ${name} -o /tmp/${name}.log @@ -141,14 +145,14 @@ ;; esac else - echo "# $name $tasks tasks" + lxc_log "$name $tasks tasks" fi # time of 5 minutes on it JUST IN CASE... inotifywait -qqt 300 ${vps_utmp} done -echo "${name} exited" +lxc_log "$name exited" } @@ -167,7 +171,8 @@ setup_inittab $1 ::power "p0::powerfail:/sbin/init 0" setup_inittab $1 ::ctrlaltdel "p6::ctrlaltdel:/sbin/init 6" lxc_start $1 - ( nohup $0 watchdog $1 >> /tmp/$1.log 2>/dev/null ) & + # give container 5 seconds to start more than one process + ( sleep 5 ; nohup $0 watchdog $1 >> /tmp/$1.log 2>/dev/null ) & ;; stop|halt) lxc_exists $1