Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
wait(1)				 User Commands			       wait(1)

       wait - await process completion

       wait [pid...]

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

       wait [ %	jobid...]


       The  shell itself executes wait,	without	creating a new process.	If you
       get the error message cannot fork,too many  processes,  try  using  the
       wait  command  to  clean	 up your background processes. If this doesn't
       help, the system	process	table is probably full or you  have  too  many
       active  foreground 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 chil-
       dren 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 ac-
       tive 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	 imme-
       diately and the return code will	be 0.

       Wait for	your background	processes.

       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 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 sta-
       tus 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.

       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 process
		group to be waited for.	The job	control	job ID notation	is ap-
		plicable only for invocations of wait in the current shell ex-
		ecution	environment, and only on systems  supporting  the  job
		control	option.

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

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

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

       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&
       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 %%

       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.

       See attributes(5) for descriptions of the following attributes:

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

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

SunOS 5.10			  12 Dec 1997			       wait(1)


Want to link to this manual page? Use this URL:

home | help