1 |
#!/bin/sh |
#! /bin/sh |
2 |
|
### BEGIN INIT INFO |
3 |
|
# Provides: lxc-watchdog |
4 |
|
# Required-Start: $remote_fs $named $network $time |
5 |
|
# Required-Stop: $remote_fs $named $network |
6 |
|
# Required-Start: |
7 |
|
# Required-Stop: |
8 |
|
# Default-Start: 2 3 4 5 |
9 |
|
# Default-Stop: 0 1 6 |
10 |
|
# Short-Description: Manage Linux Containers startup/shutdown |
11 |
|
# Description: Uses clever inotify hack to monitor container's |
12 |
|
# halt/reboot events watching /var/run/utmp |
13 |
|
### END INIT INFO |
14 |
|
|
15 |
# lxc-watchdog.sh |
# Author: Dobrica Pavlinusic <dpavlin@rot13.org> |
|
# |
|
|
# Dobrica Pavlinusic <dpavlin@rot13.org> 2010-03-15 |
|
|
# |
|
|
# this script can be used to start/stop Linux containers |
|
|
# using clever inotify hack to monitor halt/reboot from |
|
|
# Tony Risinger posted to lxc-users mailing list |
|
16 |
# |
# |
17 |
|
# based on Tony Risinger post to lxc-users mailing list |
18 |
# http://www.mail-archive.com/lxc-users@lists.sourceforge.net/msg00074.html |
# http://www.mail-archive.com/lxc-users@lists.sourceforge.net/msg00074.html |
19 |
|
|
20 |
|
|
101 |
lxc-start -n $name -o /tmp/${name}.log -d |
lxc-start -n $name -o /tmp/${name}.log -d |
102 |
lxc-wait -n $name -s RUNNING |
lxc-wait -n $name -s RUNNING |
103 |
lxc-info -n $name |
lxc-info -n $name |
104 |
echo $name > /var/lib/lxc/${name}/on_boot |
test -f /var/lib/lxc/${name}/on_boot || echo $name > /var/lib/lxc/${name}/on_boot |
105 |
fi |
fi |
106 |
} |
} |
107 |
|
|
167 |
setup_inittab $1 ::power "p0::powerfail:/sbin/init 0" |
setup_inittab $1 ::power "p0::powerfail:/sbin/init 0" |
168 |
setup_inittab $1 ::ctrlaltdel "p6::ctrlaltdel:/sbin/init 6" |
setup_inittab $1 ::ctrlaltdel "p6::ctrlaltdel:/sbin/init 6" |
169 |
lxc_start $1 |
lxc_start $1 |
170 |
( nohup $0 watchdog $1 >> /tmp/$1.log 2>/dev/null ) & |
# give container 5 seconds to start more than one process |
171 |
|
( sleep 5 ; nohup $0 watchdog $1 >> /tmp/$1.log 2>/dev/null ) & |
172 |
;; |
;; |
173 |
stop|halt) |
stop|halt) |
174 |
lxc_exists $1 |
lxc_exists $1 |