|
|
- #!/bin/sh /etc/rc.common
-
- . /lib/functions.sh
-
- START=99
- STOP=00
-
- run_command() {
- local command="$1"
- $command
- }
-
- start_container() {
- local cfg="$1"
- local name
-
- config_get name "$cfg" name
- config_list_foreach "$cfg" command run_command
- if [ -n "$name" ]; then
- /usr/bin/lxc-start -n "$name"
- fi
- }
-
- max_timeout=0
-
- stop_container() {
- local cfg="$1"
- local name timeout
-
- config_get name "$cfg" name
- config_get timeout "$cfg" timeout 300
-
- if [ "$max_timeout" -lt "$timeout" ]; then
- max_timeout=$timeout
- fi
-
- if [ -n "$name" ]; then
- if [ "$timeout" = "0" ]; then
- /usr/bin/lxc-stop -n "$name" &
- else
- /usr/bin/lxc-stop -n "$name" -t $timeout &
- fi
- fi
- }
-
- start() {
- config_load lxc-auto
- config_foreach start_container container
- }
-
- stop() {
- config_load lxc-auto
- config_foreach stop_container container
- # ensure e.g. shutdown doesn't occur before maximum timeout on
- # containers that are shutting down
- if [ $max_timeout -gt 0 ]; then
- sleep $max_timeout
- fi
- }
-
|