utils/lxc: Add working autostart for OpenWrt
Standard LXC autostart is currently not working in OpenWrt, therefore add our own autostart mechanism for now. Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
This commit is contained in:
parent
403079aff8
commit
b7b0f59e1c
2 changed files with 65 additions and 0 deletions
5
utils/lxc/files/lxc-auto.config
Normal file
5
utils/lxc/files/lxc-auto.config
Normal file
|
@ -0,0 +1,5 @@
|
|||
#config container
|
||||
#option name container1
|
||||
#option timeout 300
|
||||
#list command '/bin/command --option'
|
||||
|
60
utils/lxc/files/lxc-auto.init
Executable file
60
utils/lxc/files/lxc-auto.init
Executable file
|
@ -0,0 +1,60 @@
|
|||
#!/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
|
||||
}
|
||||
|
Loading…
Reference in a new issue