Default --sig-proxy to true for 'podman start --attach'

The --sig-proxy option in both 'podman attach' and 'podman run' default
to true, and there's no reason for 'podman start --attach' to be any
different. However, since it only makes sense to proxy signals when
the container is attached, 'podman start --sig-proxy' will continue to
error if --attach isn't used.

Signed-off-by: Debarshi Ray <rishi@fedoraproject.org>
This commit is contained in:
Debarshi Ray 2019-01-08 14:32:52 +01:00
parent f71264e612
commit e02199f2a4
2 changed files with 12 additions and 6 deletions

View File

@ -27,9 +27,9 @@ var (
Name: "interactive, i",
Usage: "Keep STDIN open even if not attached",
},
cli.BoolFlag{
cli.BoolTFlag{
Name: "sig-proxy",
Usage: "proxy received signals to the process",
Usage: "proxy received signals to the process (default true if attaching, false otherwise)",
},
LatestFlag,
}
@ -67,8 +67,14 @@ func startCmd(c *cli.Context) error {
return err
}
if c.Bool("sig-proxy") && !attach {
return errors.Wrapf(libpod.ErrInvalidArg, "you cannot use sig-proxy without --attach")
sigProxy := c.BoolT("sig-proxy")
if sigProxy && !attach {
if c.IsSet("sig-proxy") {
return errors.Wrapf(libpod.ErrInvalidArg, "you cannot use sig-proxy without --attach")
} else {
sigProxy = false
}
}
runtime, err := libpodruntime.GetRuntime(c)
@ -111,7 +117,7 @@ func startCmd(c *cli.Context) error {
}
// attach to the container and also start it not already running
err = startAttachCtr(ctr, os.Stdout, os.Stderr, inputStream, c.String("detach-keys"), c.Bool("sig-proxy"), !ctrRunning)
err = startAttachCtr(ctr, os.Stdout, os.Stderr, inputStream, c.String("detach-keys"), sigProxy, !ctrRunning)
if ctrRunning {
return err
}

View File

@ -35,7 +35,7 @@ to run containers such as CRI-O, the last started container could be from either
**--sig-proxy**=*true*|*false*
Proxy received signals to the process (non-TTY mode only). SIGCHLD, SIGSTOP, and SIGKILL are not proxied. The default is false.
Proxy received signals to the process (non-TTY mode only). SIGCHLD, SIGSTOP, and SIGKILL are not proxied. The default is *true* when attaching, *false* otherwise.
## EXAMPLE