proposal: add --keep to runc run

Signed-off-by: lifubang <lifubang@acmcoder.com>
This commit is contained in:
lifubang
2021-02-26 21:46:36 +08:00
committed by Kir Kolyshkin
parent 2aabb29741
commit cb824629ba
3 changed files with 64 additions and 1 deletions
+4
View File
@@ -40,6 +40,10 @@ command(s) that get executed on start, edit the args parameter of the spec. See
Name: "detach, d",
Usage: "detach from the container's process",
},
cli.BoolFlag{
Name: "keep",
Usage: "do not delete the container after it exits",
},
cli.StringFlag{
Name: "pid-file",
Value: "",
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env bats
load helpers
function setup() {
setup_hello
}
function teardown() {
teardown_bundle
}
@test "runc run" {
runc run test_hello
[ "$status" -eq 0 ]
runc state test_hello
[ "$status" -ne 0 ]
}
@test "runc run --keep" {
runc run --keep test_run_keep
[ "$status" -eq 0 ]
testcontainer test_run_keep stopped
runc state test_run_keep
[ "$status" -eq 0 ]
runc delete test_run_keep
runc state test_run_keep
[ "$status" -ne 0 ]
}
@test "runc run --keep (check cgroup exists)" {
# for systemd driver, the unit's cgroup path will be auto removed if container's all processes exited
requires no_systemd
[[ "$ROOTLESS" -ne 0 ]] && requires rootless_cgroup
set_cgroups_path
runc run --keep test_run_keep
[ "$status" -eq 0 ]
testcontainer test_run_keep stopped
runc state test_run_keep
[ "$status" -eq 0 ]
# check that cgroup exists
check_cgroup_value "pids.max" "max"
runc delete test_run_keep
runc state test_run_keep
[ "$status" -ne 0 ]
}
+1 -1
View File
@@ -439,7 +439,7 @@ func startContainer(context *cli.Context, spec *specs.Spec, action CtAct, criuOp
r := &runner{
enableSubreaper: !context.Bool("no-subreaper"),
shouldDestroy: true,
shouldDestroy: !context.Bool("keep"),
container: container,
listenFDs: listenFDs,
notifySocket: notifySocket,