Skip to content

Commit

Permalink
docker kill: don't set default signal on the client side
Browse files Browse the repository at this point in the history
The default signal is already determined by the daemon, so the
CLI should not send a signal.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
  • Loading branch information
thaJeztah committed May 13, 2022
1 parent 1b922a4 commit 20138a8
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 4 deletions.
2 changes: 1 addition & 1 deletion cli/command/container/kill.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func NewKillCommand(dockerCli command.Cli) *cobra.Command {
}

flags := cmd.Flags()
flags.StringVarP(&opts.signal, "signal", "s", "KILL", "Signal to send to the container")
flags.StringVarP(&opts.signal, "signal", "s", "", "Signal to send to the container")
return cmd
}

Expand Down
2 changes: 1 addition & 1 deletion docs/reference/commandline/kill.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Kill one or more running containers

Options:
--help Print usage
-s, --signal string Signal to send to the container (default "KILL")
-s, --signal string Signal to send to the container
```

## Description
Expand Down
22 changes: 20 additions & 2 deletions man/src/container/kill.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,20 @@
The main process inside each container specified will be sent SIGKILL,
or any signal specified with option --signal.
The `docker kill` subcommand kills one or more containers. The main process
inside the container is sent `SIGKILL` signal (default), or the signal that is
specified with the `--signal` option. You can reference a container by its
ID, ID-prefix, or name.

The `--signal` flag sets the system call signal that is sent to the container.
This signal can be a signal name in the format `SIG<NAME>`, for instance `SIGINT`,
or an unsigned number that matches a position in the kernel's syscall table,
for instance `2`.

While the default (`SIGKILL`) signal will terminate the container, the signal
set through `--signal` may be non-terminal, depending on the container's main
process. For example, the `SIGHUP` signal in most cases will be non-terminal,
and the container will continue running after receiving the signal.

> **Note**
>
> `ENTRYPOINT` and `CMD` in the *shell* form run as a child process of
> `/bin/sh -c`, which does not pass signals. This means that the executable is
> not the container’s PID 1 and does not receive Unix signals.

0 comments on commit 20138a8

Please sign in to comment.