FreeBSD manual
download PDF document: pwait.1.pdf
PWAIT(1) FreeBSD General Commands Manual PWAIT(1)
NAME
pwait - wait for processes to terminate
SYNOPSIS
pwait [-t duration] [-ov] pid ...
DESCRIPTION
The pwait utility will wait until each of the given processes has
terminated.
The following option is available:
-o Exit when any of the given processes has terminated.
-t duration
If any process is still running after duration, pwait will exit.
The duration value can be integer or decimal numbers. Values
without unit symbols are interpreted as seconds.
Supported unit symbols are:
s seconds
m minutes
h hours
-v Print the exit status when each process terminates or `timeout'
if the timer goes off earlier.
EXIT STATUS
The pwait utility exits 0 on success, and >0 if an error occurs.
If the -t flag is specified and a timeout occurs, the exit status will be
124.
Invalid pids elicit a warning message but are otherwise ignored.
EXAMPLES
Start two sleep(1) processes in the background. The first one will sleep
for 30 seconds and the second one for one hour. Wait for any of them to
finish but no more than 5 seconds. Since a timeout occurs the exit
status is 124:
$ sleep 30 & sleep 3600 &
[1] 1646
[2] 1647
$ pwait -o -t5 1646 1647
$?
124
Same as above but try to obtain the exit status of the processes. In
this case `timeout' is shown and the exit status is 124:
$ sleep 30 & sleep 3600 &
[1] 1652
[2] 1653
$ pwait -v -t 5 1652 1653
timeout
$?
[1] 1674
[2] 1675
$ pwait -v -t 60 1674 1675
1674: exited with status 0.
1675: exited with status 0.
[1]- Done sleep 30
[2]+ Done sleep 40
$ echo $?
0
SEE ALSO
kill(1), pkill(1), ps(1), wait(1), kqueue(2)
NOTES
pwait is not a substitute for the wait(1) builtin as it will not clean up
any zombies or state in the parent process.
To avoid deadlock, pwait will ignore its own pid, if it is provided as a
process id to wait for.
HISTORY
A pwait command first appeared in SunOS 5.8.
FreeBSD 14.0-RELEASE-p11 January 21, 2021 FreeBSD 14.0-RELEASE-p11