Files
podman/docs/source/markdown/podman-wait.1.md.in
Paul Holzinger 80639df27a podman wait: allow waiting for removal of containers
By default wait only waits for the exit of a container, there is really
no way to make it wait for the removal too when the container was
created with --rm. I though I found a clever way in 8a943311db but this
is not working race free. While it works most of the time any other
parallel process might call syncContainer() before the cleanup process
holds the lock until it removes it. As such the wait hack to only update
the state and not sync the exit file did not work so we can drop that.

However the test wants to wait for the removal to happen by the cleanup
process and we can already say --condition=removing to do this but this
will throw an error if the ctr was removed instead of counting this as
success so fix that as well.

Fixes #23640

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-16 15:44:02 +02:00

90 lines
2.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 conditions are satisfied, the containers' return codes are printed
separated by newline in the same order as they were given to the command. An
exit code of -1 is emitted for all conditions other than "stopped" and
"exited".
When waiting for containers with a restart policy of `always` or `on-failure`,
such as those created by `podman kube play`, the containers may be repeatedly
exiting and restarting, possibly with different exit codes. `podman wait` will
only display and detect the first exit after the wait command was started.
When running a container with podman run --rm wait does not wait for the
container to be fully removed. To wait for the removal of a container use
`--condition=removing`.
## OPTIONS
#### **--condition**=*state*
Container state or condition to wait for. Can be specified multiple times where at least one condition must match for the command to return. Supported values are "configured", "created", "exited", "healthy", "initialized", "paused", "removing", "running", "stopped", "stopping", "unhealthy". The default condition is "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
Wait for the specified container to exit.
```
$ podman wait mywebserver
0
```
Wait for the latest container to exit. (This option is not available with the remote Podman client, including Mac and Windows (excluding WSL2) machines)
```
$ podman wait --latest
0
```
Wait for the container to exit, checking every two seconds.
```
$ podman wait --interval 2s mywebserver
0
```
Wait for the container by ID. This container exits with error status 1:
```
$ podman wait 860a4b23
1
```
Wait for both specified containers to exit.
```
$ podman wait mywebserver myftpserver
0
125
```
Wait for the named container to exit, but do not fail if the container does not exist.
```
$ 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>