Summary: | app-emulation/lxc: /etc/init.d/lxc stop stops the LXC twice | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Killian De Volder <Killian.de.volder> |
Component: | [OLD] Server | Assignee: | Diego Elio Pettenò (RETIRED) <flameeyes> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dev-zero, hwoarang, virtualization |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Killian De Volder
2015-08-06 09:35:04 UTC
I find the existing shutdown code rather obscure. Does that patch work for you? diff --git a/app-emulation/lxc/files/lxc.initd.3 b/app-emulation/lxc/files/lxc.initd.3 index c9ef999..b9d8c14 100644 --- a/app-emulation/lxc/files/lxc.initd.3 +++ b/app-emulation/lxc/files/lxc.initd.3 @@ -111,29 +111,8 @@ stop() { return 0 fi - init_pid=$(lxc-info -n ${CONTAINER} --pid | awk '{ print $2 }') - - if [ -z "${init_pid}" ]; then - ewarn "${CONTAINER} doesn't seem to be running." - return 0 - fi - - ebegin "Shutting down system in ${CONTAINER}" - kill -PWR ${init_pid} - eend $? - - TIMEOUT=${TIMEOUT:-30} - i=0 - while [ -n "$(pgrep -P ${init_pid})" -a $i -lt ${TIMEOUT} ]; do - sleep 1 - i=$(expr $i + 1) - done - - if [ -n "${missingprocs}" ]; then - ewarn "Something failed to properly shut down in ${CONTAINER}" - fi - + # 10s should be enough to shut everything down ebegin "Stopping ${CONTAINER}" - lxc-stop -n ${CONTAINER} + lxc-stop -t 30 -n ${CONTAINER} eend $? I committed that fix |