- #!/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
- [ "$timeout" = "0" ] && postargs=" -t $max_timeout"
- /usr/bin/lxc-stop -n "$name" "$postargs" &
- export STOPPID=$!
- 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
- for i in $(seq 1 $max_timeout); do
- if [ -d /proc/"$STOPPID" ]; then
- sleep 1s
- else
- return 0
- fi
- done
- fi
- }
-
- #Export systemd cgroups
- boot() {
- if [ ! -d /sys/fs/cgroup/systemd ]; then
- mkdir -p /sys/fs/cgroup/systemd
- mount -t cgroup -o rw,nosuid,nodev,noexec,relatime,none,name=systemd cgroup /sys/fs/cgroup/systemd
- fi
-
- if [ ! -d /run ]; then
- ln -s /var/run /run
- fi
-
- start
- }
|