better output
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 16 Mar 2010 23:05:31 +0000 (23:05 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 16 Mar 2010 23:05:31 +0000 (23:05 +0000)
git-svn-id: svn://svn.rot13.org/sysadmin-cookbook@189 191e9f34-6774-4a6d-acfc-7664dacd4a2a

recepies/lxc/lxc-watchdog.sh

index 0c81916..8c3a77d 100755 (executable)
@@ -39,9 +39,9 @@ lxc_rootfs() {
 
 lxc_status() {
        lxc-ls -1 | sort -u | xargs -i lxc-info -n {} | sed "s/'//g" | while read name is status ; do
-               on_boot="       "
-               test -s /var/lib/lxc/$name/on_boot && on_boot="on_boot"
-               echo "$name $status $on_boot $(lxc_rootfs $name)"
+               boot="    "
+               test -s /var/lib/lxc/$name/on_boot && boot="boot"
+               echo "$name $status $boot $(lxc_rootfs $name)"
        done
 }
 
@@ -73,6 +73,11 @@ setup_inittab() {
 }
 
 
+lxc_log() {
+       echo `date +%Y-%m-%dT%H:%M:%S` $*
+}
+
+
 lxc_kill() {
        name=$1
        sig=$2
@@ -82,13 +87,15 @@ lxc_kill() {
                lxc-info -n $name
                exit 1
        fi
-       echo "$name kill $sig $init_pid"
+       lxc_log "$name kill $sig $init_pid"
        /bin/kill $sig $init_pid
 }
 
 lxc_stop() {
+       lxc_log "$name stop"
        lxc_kill $name -SIGPWR
        lxc-wait -n $name -s STOPPED
+       lxc_log "$name stoped"
 #      rm -f /var/lib/lxc/${name}/on_boot
 }
 
@@ -97,7 +104,7 @@ lxc_start() {
        name=$1
 
        if ! lxc-info -n $name | grep RUNNING ; then
-               echo "$name start"
+               lxc_log "$name start"
                lxc-start -n $name -o /tmp/${name}.log -d
                lxc-wait  -n $name -s RUNNING
                lxc-info  -n $name
@@ -105,10 +112,6 @@ lxc_start() {
        fi
 }
 
-lxc_log() {
-       echo `date +%Y-%m-%dT%H:%M:%S` $*
-}
-
 lxc_watchdog() {
 name=$1
 rootfs=$(lxc_rootfs $1)
@@ -152,7 +155,7 @@ while true; do
        inotifywait -qqt 300 ${vps_utmp}
 done
 
-lxc_log "$name exited"
+lxc_log "$name watchdog exited"
 
 }
 
@@ -200,16 +203,20 @@ esac
 }
 
 command=$1
+shift
 
 test "$command" = "status" && lxc_status && exit
 
 if [ -z "$1" ] ; then
        ls /var/lib/lxc/*/on_boot | while read path ; do
                name=`echo $path | cut -d/ -f5`
-               command_on_lxc $command $name
+               if [ "$command" != "start" -o "$command" = "start" -a -s $path ] ; then
+                       command_on_lxc $command $name
+               else
+                       echo "# skip $command $name"
+               fi
        done
 else
-       shift
        while [ ! -z "$1" ] ; do
                command_on_lxc $command $1
                shift