diff options
Diffstat (limited to 'libexec/container')
-rwxr-xr-x | libexec/container/auto | 6 | ||||
-rwxr-xr-x | libexec/container/remove | 2 | ||||
-rwxr-xr-x | libexec/container/stop | 15 |
3 files changed, 18 insertions, 5 deletions
diff --git a/libexec/container/auto b/libexec/container/auto index 927eae0..461e67d 100755 --- a/libexec/container/auto +++ b/libexec/container/auto @@ -109,6 +109,12 @@ case "${FORCE}" in ;; esac +case "${ACTION}" in + stop) + OPTIONS="${OPTIONS} -f" + ;; +esac + for FILE in "${CONFIG}"/*.conf do if grep -Eqs "^ *cnt.auto=force-true" "${FILE}" diff --git a/libexec/container/remove b/libexec/container/remove index 86f237d..4cb5d48 100755 --- a/libexec/container/remove +++ b/libexec/container/remove @@ -150,7 +150,7 @@ case "${STATE}" in case "${ALLOW_STOP}" in true) echo "'${NAME}': container is started, stopping it now" >&2 - ${PROGRAM} stop -n ${NAME} + ${PROGRAM} stop -n ${NAME} -f ;; *) diff --git a/libexec/container/stop b/libexec/container/stop index 59c8b76..2d81523 100755 --- a/libexec/container/stop +++ b/libexec/container/stop @@ -34,8 +34,8 @@ Parameters () { OPTIONS_ALL="" - GETOPT_LONGOPTIONS="name:,force,interactive,clean,verbose," - GETOPT_OPTIONS="n:,f,i,v," + GETOPT_LONGOPTIONS="name:,force,interactive,kill,clean,verbose," + GETOPT_OPTIONS="n:,f,i,k,v," PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${COMMAND} --options ${GETOPT_OPTIONS} --shell sh -- ${@})" @@ -69,6 +69,13 @@ Parameters () OPTIONS_ALL="${OPTIONS_ALL} --interactive" ;; + -k|--kill) + KILL="true" + shift 1 + + OPTIONS_ALL="${OPTIONS_ALL} --kill" + ;; + --clean) # internal option CLEAN="true" @@ -270,7 +277,7 @@ case "${STATE}" in ;; esac -case "${FORCE}" in +case "${KILL}" in true) MODE="terminate" ;; @@ -306,7 +313,7 @@ esac machinectl ${MODE} ${NAME} -case "${FORCE}" in +case "${KILL}" in true) VETHS="$(awk -Fnetwork-veth-extra= '/^network-veth-extra=/ { print $2 }' ${CONFIG}/${NAME}.conf | awk -F: '{ print $1 }')" |