wait - Awaits process completion
The C shell has a built-in version of the wait command.
If you are using the C shell, and want to guarantee that
you are using the command described here, you must specify
the full path /usr/bin/wait. See the csh(1) reference
page for a description of the built-in command.
Interfaces documented on this reference page conform to
industry standards as follows:
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
One of the following: The unsigned decimal integer process
ID of a command, for which the utility is to wait for the
termination. A job control job ID that identifies a background
process group to be waited for. The job control job
ID notation is applicable only for invocations of wait in
the current shell execution environment. The exit status
of wait is determined by the last command in the pipeline.
When an asynchronous list is started by the shell, the
process ID of the last command in each element of the
asynchronous list becomes known in the current shell execution
If the wait utility is invoked with no operands, it waits
until all process IDs known to the invoking shell have
terminated and exits with a zero exit status.
If one or more pid operands are specified that represent
known process IDs, the wait utility waits until all of
them have terminated. If one or more pid operands are
specified that represent unknown process IDs, wait treats
them as if they were known process IDs that exited with
exit status 127. The exit status returned by the wait
utility is the exit status of the process requested by the
last pid operand.
The known process IDs are applicable only for invocations
of wait in the current shell execution environment.
If wait is called in a subshell or separate utility execution
environment, such as one of the following, it returns
immediately because there are no known process IDs to wait
for in those environments:
(wait) nohup wait ... find . -exec wait ... \; If
the exit status of wait is greater than 128, there
is no way for the application to know if the
waited-for process exited with that value or was
killed by a signal. Since most utilities exit with
small values, there is seldom any ambiguity.
If one or more parameters were specified, all of them have
terminated or were not known by the invoking shell, and
the status of the last parameter specified is known, then
the exit status of wait is the exit status information of
the command indicated by the last parameter specified. If
the process terminated abnormally due to the receipt of a
signal, the exit status is greater than 128 and is distinct
from the exit status generated by other signals.
(See the kill -l option.) Otherwise, the wait utility
exits with one of the following values: The wait utility
was invoked with no operands and all process IDs known by
the invoking shell have terminated. The wait utility
detected an error. The command identified by the last pid
operand specified is unknown.
Although the exact value used when a process is terminated
by a signal is unspecified, if it is known that a signal
terminated a process, a script can still reliably figure
out which signal using kill as shown by the following
sleep 1000& pid=$! kill -kill $pid wait $pid echo
$pid was terminated by a SIG$(kill -l $?) signal.
If either sequence of commands shown on the first
two lines is run in less than 31 seconds either of
the commands shown on lines 3 and 4 will return the
exit status of the second sleep in the pipeline:
sleep 257 | sleep 31 & jobs -l %% wait <pid of
sleep 31> wait %%
ENVIRONMENT VARIABLES [Toc] [Back]
The following environment variables affect the execution
of wait: Provides a default value for the internationalization
variables that are unset or null. If LANG is unset
or null, the corresponding value from the default locale
is used. If any of the internationalization variables
contain an invalid setting, the utility behaves as if none
of the variables had been defined. If set to a non-empty
string value, overrides the values of all the other internationalization
variables. Determines the locale for the
interpretation of sequences of bytes of text data as characters
(for example, single-byte as opposed to multibyte
characters in arguments). Determines the locale used to
affect the format and contents of diagnostic messages
written to standard error. Determines the location of
message catalogues for the processing of LC_MESSAGES.
Commands: bg(1), csh(1), fg(1), jobs(1), kill(1), ksh(1),
[ Back ]