wait(1)




NAME

     wait - await process completion


SYNOPSIS


  /bin/sh
     wait [pid...]

  /bin/jsh /bin/ksh /usr/xpg4/bin/sh
     wait [pid...]

     wait [ % jobid...]

  /bin/csh
     wait


DESCRIPTION

     The shell itself executes wait, without creating a new  pro-
     cess.  If  you  get  the  error message cannot fork,too many
     processes, try using the wait command to clean up your back-
     ground  processes.  If this doesn't help, the system process
     table is probably full or you have  too  many  active  fore-
     ground  processes. There is a limit to the number of process
     IDs associated with your login, and to the number the system
     can keep track of.

     Not all the processes of  a  pipeline  with  three  or  more
     stages  are children of the shell, and thus cannot be waited
     for.

  /bin/sh, /bin/jsh
     Wait for your background process whose process ID is pid and
     report  its  termination status. If pid is omitted, all your
     shell's currently active background processes are waited for
     and  the  return  code will be 0. The wait utility accepts a
     job identifier, when Job Control is enabled (jsh),  and  the
     argument, jobid, is preceded by a percent sign (%).

     If pid is not an active process ID, the  wait  utility  will
     return immediately and the return code will be 0.

  csh
     Wait for your background processes.

  ksh
     When an asynchronous list is started by the shell, the  pro-
     cess ID of the last command in each element of the asynchro-
     nous list becomes  known  in  the  current  shell  execution
     environment.

     If the wait utility is invoked with  no  operands,  it  will
     wait  until all process IDs known to the invoking shell have
     terminated and exit with an exit status of 0.

     If one or more pid or  jobid  operands  are  specified  that
     represent  known  process  IDs (or jobids), the wait utility
     will wait until all of them have terminated. If one or  more
     pid  or  jobid operands are specified that represent unknown
     process IDs (or jobids), wait will treat  them  as  if  they
     were  known  process  IDs  (or jobids) that exited with exit
     status 127. The exit status returned  by  the  wait  utility
     will be the exit status of the process requested by the last
     pid or jobid operand.

     The known process IDs are applicable only for invocations of
     wait in the current shell execution environment.


OPERANDS

     The following operands are supported:

     One of the following:

     pid   The unsigned decimal integer process ID of a  command,
           for which the utility is to wait for the termination.

     jobid A job control job ID that identifies a background pro-
           cess  group  to  be waited for. The job control job ID
           notation is applicable only for invocations of wait in
           the  current  shell execution environment, and only on
           systems supporting the job control option.


USAGE

     On most implementations, wait is a shell built-in. If it  is
     called  in a subshell or separate utility execution environ-
     ment, such as one of the following,

     (wait)
     nohup wait ...
     find . -exec wait ... \;

     it will return immediately because there will  be  no  known
     process IDs to wait for in those environments.


EXAMPLES

     Example 1: Using A Script To Identify The Termination Signal

     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  is  using  kill,  as  shown  by the following
     (/bin/ksh and /usr/xpg4/bin/sh):

     sleep 1000&
     pid=$!
     kill -kill $pid
     wait $pid
     echo $pid was terminated by a SIG$(kill -l  $(($?-128))) signal.

     Example 2: Returning The Exit Status Of A Process

     If the following sequence of commands is run in less than 31
     seconds (/bin/ksh and /usr/xpg4/bin/sh):

     sleep 257 | sleep 31 &

     jobs -l %%

     then either of the following commands will return  the  exit
     status of the second sleep in the pipeline:

     wait <pid of sleep 31>
     wait %%


ENVIRONMENT VARIABLES

     See environ(5) for descriptions of the following environment
     variables  that  affect the execution of wait: LANG, LC_ALL,
     LC_CTYPE, LC_MESSAGES, and NLSPATH.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsu                     |
    |_____________________________|_____________________________|
    | Interface Stability         | Standard                    |
    |_____________________________|_____________________________|


SEE ALSO

     csh(1), jobs(1), ksh(1), sh(1),  attributes(5),  environ(5),
     standards(5)


Man(1) output converted with man2html