mirror of
https://github.com/containers/podman.git
synced 2025-08-05 19:02:37 +08:00

Make sure to look for the container's exit code when it's in stopped state. With `--restart=always`, the container seems to stay in the stopped state which led the wait logic to loop until the 20 seconds timeout for the cleanup process to have finished kicks in. Also defensively make sure to loop when the container is in stopped state but no exit code has been written yet. Add a regression test to make sure Podman doesn't wait more than 20 seconds. Even on a CI machine under high load I expect it to take much much much less than that, so I do not expect this test to flake in the future. Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
68 lines
1.8 KiB
Markdown
68 lines
1.8 KiB
Markdown
% podman-wait 1
|
|
|
|
## NAME
|
|
podman\-wait - Wait on one or more containers to stop and print their exit codes
|
|
|
|
## SYNOPSIS
|
|
**podman wait** [*options*] *container* [...]
|
|
|
|
**podman container wait** [*options*] *container* [...]
|
|
|
|
## DESCRIPTION
|
|
Waits on one or more containers to stop. The container can be referred to by its
|
|
name or ID. In the case of multiple containers, Podman waits on each consecutively.
|
|
After all specified containers are stopped, the containers' return codes are printed
|
|
separated by newline in the same order as they were given to the command.
|
|
|
|
NOTE: there is an inherent race condition when waiting for containers with a
|
|
restart policy of `always` or `on-failure`, such as those created by `podman
|
|
kube play`. Such containers may be repeatedly exiting and restarting, possibly
|
|
with different exit codes, but `podman wait` can only display and detect one.
|
|
|
|
## OPTIONS
|
|
|
|
#### **--condition**=*state*
|
|
Condition to wait on (default "stopped")
|
|
|
|
#### **--help**, **-h**
|
|
|
|
Print usage statement
|
|
|
|
|
|
#### **--ignore**
|
|
Ignore errors when a specified container is missing and mark its return code as -1.
|
|
|
|
#### **--interval**, **-i**=*duration*
|
|
Time interval to wait before polling for completion. A duration string is a sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Time unit defaults to "ms".
|
|
|
|
@@option latest
|
|
|
|
## EXAMPLES
|
|
|
|
```
|
|
$ podman wait mywebserver
|
|
0
|
|
|
|
$ podman wait --latest
|
|
0
|
|
|
|
$ podman wait --interval 2s
|
|
0
|
|
|
|
$ podman wait 860a4b23
|
|
1
|
|
|
|
$ podman wait mywebserver myftpserver
|
|
0
|
|
125
|
|
|
|
$ podman wait --ignore does-not-exist
|
|
-1
|
|
```
|
|
|
|
## SEE ALSO
|
|
**[podman(1)](podman.1.md)**
|
|
|
|
## HISTORY
|
|
September 2017, Originally compiled by Brent Baude<bbaude@redhat.com>
|