Files
podman/docs/source/markdown/podman-wait.1.md.in
Valentin Rothberg 1b9272a060 wait: look for exit code in stopped state
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>
2023-05-22 14:53:19 +02:00

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>