JOBS(1)                         User Commands                        JOBS(1)
NAME
       jobs, fg, bg, stop, notify - control process execution
SYNOPSIS
   sh       jobs [
-p | 
-l] [% 
job_id...]       
jobs -x command [
arguments]       
fg [% 
job_id...]       
bg [% 
job_id...]       
stop % 
job_id...       
stop pid...   
csh       jobs [
-l]       
fg [% 
job_id]       
bg [% 
job_id]...       
notify [% 
job_id]...       
stop % 
job_id...       
stop pid...   
ksh       jobs [
-lnp] [% 
job_id...]       
fg [% 
job_id...]       
bg [% 
job_id...]       
stop % 
job_id...       
stop pid...   
ksh93       jobs [
-lnp] [
job_id...]       
fg [
job_id...]       
bg [
job_id...]
DESCRIPTION
   sh       When Job Control is enabled, the Bourne shell built-in 
jobs reports
       all jobs that are stopped or executing in the background. If 
%job_id       is omitted, all jobs that are stopped or running in the background is
       reported.  The following options modify or enhance the output of       
jobs:       
-l             Reports the process group 
ID and working directory of the jobs.       
-p             Reports only the process group 
ID of the jobs.       
-x             Replaces any 
job_id found in 
command or 
arguments with the
             corresponding process group 
ID, and then executes 
command             passing it 
arguments.
       When the shell is invoked as 
jsh, Job Control is enabled in addition
       to all of the functionality described previously for 
sh. Typically
       Job Control is enabled for the interactive shell only. Non-
       interactive shells typically do not benefit from the added
       functionality of Job Control.
       With Job Control enabled every command or pipeline the user enters at
       the terminal is called a 
job_id. All jobs exist in one of the
       following states: foreground, background or stopped. These terms are
       defined as follows:
           1.     A job in the 
foreground has read and write access to the
                  controlling terminal.
           2.     A job in the 
background is denied read access and has
                  conditional write access to the controlling terminal (see                  
stty(1))
           3.     A 
stopped job is a job that has been placed in a suspended
                  state, usually as a result of a 
SIGTSTP signal (see                  
signal.h(3HEAD)).
       Every job that the shell starts is assigned a positive integer,
       called a 
job_id number which is tracked by the shell and are used as
       an identifier to indicate a specific job. Additionally, the shell
       keeps track of the 
current and 
previous jobs. The 
current job is the
       most recent job to be started or restarted. The 
previous job is the
       first non-current job.
       The acceptable syntax for a Job Identifier is of the form:       
%job_id       where 
job_id can be specified in any of the following formats:       
% or 
+                    for the current job       
-                    for the previous job       
?<string>                    specify the job for which the command line uniquely
                    contains 
string.       
n                    for job number 
n, where 
n is a job number       
pref                    where 
pref is a unique prefix of the command name (for
                    example, if the command 
ls -l name were running in the
                    background, it could be referred to as 
%ls); 
pref cannot
                    contain blanks unless it is quoted.
       When Job Control is enabled, 
fg resumes the execution of a stopped
       job in the foreground, also moves an executing background job into
       the foreground. If 
%job_id is omitted the current job is assumed.
       When Job Control is enabled, 
bg resumes the execution of a stopped
       job in the background. If 
%job_id is omitted the current job is
       assumed.       
stop stops the execution of a background job(s) by using its 
job_id,
       or of any process by using its 
pid; see 
ps(1).   
csh       The C shell built-in, 
jobs, without an argument, lists the active
       jobs under job control.       
-l             List process 
IDs, in addition to the normal information.
       The shell associates a numbered 
job_id with each command sequence to
       keep track of those commands that are running in the background or
       have been stopped with 
TSTP signals (typically Control-Z). When a
       command or command sequence (semicolon-separated list) is started in
       the background using the 
& metacharacter, the shell displays a line
       with the job number in brackets and a list of associated process
       numbers:       
[1] 1234       To see the current list of jobs, use the 
jobs built-in command. The
       job most recently stopped (or put into the background if none are
       stopped) is referred to as the 
current job and is indicated with a
       `
+'. The previous job is indicated with a `
-'; when the current job
       is terminated or moved to the foreground, this job takes its place
       (becomes the new current job).
       To manipulate jobs, refer to the 
bg, 
fg, 
kill, 
stop, and 
% built-in
       commands.
       A reference to a job begins with a `
%'. By itself, the percent sign
       refers to the current job.       
% %+ %%                   The current job.       
%-                   The previous job.       
%j                   Refer to job 
j as in: `
kill -9 %j'. 
j can be a job
                   number, or a string that uniquely specifies the command
                   line by which it was started; `
fg %vi' might bring a
                   stopped 
vi job to the foreground, for instance.       
%?string                   Specify the job for which the command line uniquely
                   contains 
string.
       A job running in the background stops when it attempts to read from
       the terminal. Background jobs can normally produce output, but this
       can be suppressed using the `
stty tostop' command.       
fg brings the current or specified 
job_id into the foreground.       
bg runs the current or specified jobs in the background.       
stop stops the execution of a background job(s) by using its 
job_id,
       or of any process by using its 
pid; see 
ps(1).       
notify notifies the user asynchronously when the status of the
       current job or specified jobs changes.   
ksh       jobs displays the status of the jobs that were started in the current
       shell environment. When 
jobs reports the termination status of a job,
       the shell removes its process 
ID from the list of those known in the
       current shell execution environment.       
job_id specifies the jobs for which the status is to be displayed. If
       no 
job_id is specified, the status information for all jobs are
       displayed.
       The following options modify or enhance the output of 
jobs:       
-l             (The letter ell.) Provides more information about each job
             listed. This information includes the job number, current job,
             process group 
ID, state and the command that formed the job.       
-n             Displays only jobs that have stopped or exited since last
             notified.       
-p             Displays only the process 
IDs for the process group leaders of
             the selected jobs.
       By default, 
jobs displays the status of all the stopped jobs, running
       background jobs, and all jobs whose status has changed and have not
       been reported by the shell.
       If the 
monitor option of the 
set command is turned on, an interactive
       shell associates a 
job with each pipeline. It keeps a table of
       current jobs, printed by the 
jobs command, and assigns them small
       integer numbers. When a job is started asynchronously with 
&, the
       shell prints a line which looks like:       
[1] 1234       indicating that the job, which was started asynchronously, was job
       number 
1 and had one (top-level) process, whose process id was 
1234.
       If you are running a job and wish to do something else you can hit
       the key ^Z (Control-Z) which sends a 
STOP signal to the current job.
       The shell then normally indicates that the job has been "
Stopped"
       (see 
OUTPUT below), and print another prompt. You can then manipulate
       the state of this job, putting it in the background with the 
bg       command, or run some other commands and then eventually bring the job
       back into the foreground with the foreground command 
fg. A ^Z takes
       effect immediately and is like an interrupt, in that pending output
       and unread input are discarded when it is typed.
       There are several ways to refer to jobs in the shell. A job can be
       referred to by the process id of any process of the job or by one of
       the following:       
%number                   The job with the specified number.       
%string                   Any job whose command line begins with 
string; works only
                   in the interactive mode when the history file is active.       
%?string                   Any job whose command line contains 
string; works only in
                   the interactive mode when the history file is active.       
%%                   Current job.       
%+                   Equivalent to 
%%.       
%-                   Previous job.
       The shell learns immediately whenever a process changes state. It
       normally informs you whenever a job becomes blocked so that no
       further progress is possible, but only just before it prints a
       prompt. This is done so that it does not otherwise disturb your work.
       When the monitor mode is on, each background job that completes
       triggers any trap set for 
CHLD. When you try to leave the shell while
       jobs are running or stopped, you are warned that `You have stopped
       (running) jobs.' You can use the 
jobs command to see what they are.
       If you do this or immediately try to exit again, the shell does not
       warn you a second time, and the stopped jobs are terminated.       
fg moves a background job from the current environment into the
       foreground. Using 
fg to place a job in the foreground removes its
       process 
ID from the list of those known in the current shell
       execution environment. The 
fg command is available only on systems
       that support job control. If 
job_id is not specified, the current job
       is brought into the foreground.       
bg resumes suspended jobs from the current environment by running
       them as background jobs. If the job specified by 
job_id is already a
       running background job, 
bg has no effect and exits successfully.
       Using 
bg to place a job into the background causes its process 
ID to
       become `known in the current shell execution environment, as if it
       had been started as an asynchronous list. The 
bg command is available
       only on systems that support job control. If 
job_id is not specified,
       the current job is placed in the background.       
stop stops the execution of a background job(s) by using its 
job_id,
       or of any process by using its 
pid. See 
ps(1).   
ksh93       jobs displays information about specified jobs that were started by
       the current shell environment on standard output. The information
       contains the job number enclosed in 
[...], the status, and the
       command line that started the job.
       If 
job_id is omitted, 
jobs displays the status of all stopped jobs,
       background jobs, and all jobs whose status has changed since last
       reported by the shell.
       When 
jobs reports the termination status of a job, the shell removes
       the job from the list of known jobs in the current shell environment.
       The following options modify or enhances the output of 
jobs:       
-l             Displays process IDs after the job number in addition to the
             usual information.       
-n             Displays only the jobs whose status has changed since the last
             prompt was displayed.       
-p             Displays the process group leader IDs for the specified jobs.       
job_id can be specified to 
jobs, 
fg, and 
bg as one of the following:       
number                   The process id of 
job.       
-number                   The process group id of 
job.       
%number                   The job number.       
%string                   The job whose name begins with 
string.       
%?string                   The job whose name contains 
string.       
%+       %%                   The current job.       
%-                   The previous job.       
fg places the specified jobs into the foreground in sequence and
       sends a 
CONT signal to start each running. If 
job_id is omitted, the
       most recently started or stopped background job is moved to the
       foreground.       
bg places the specified jobs into the background and sends a 
CONT       signal to start them running. If 
job_id is omitted, the most recently
       started or stopped background job is resumed or continued in the
       background.
OUTPUT
       If the 
-p option is specified, the output consists of one line for
       each process 
ID:       
"%d\n", "process ID"       Otherwise, if the 
-l option is not specified, the output is a series
       of lines of the form:       
"[%d] %c %s %s\n", 
job-number, 
current, 
state, 
command       where the fields are as follows:       
current                     The character 
+ identifies the job that would be used
                     as a default for the 
fg or 
bg commands. This job can
                     also be specified using the 
job_id %+ or 
%% . The
                     character 
- identifies the job that would become the
                     default if the current default job were to exit; this
                     job can also be specified using the 
job_id %- . For
                     other jobs, this field is a space character. At most,
                     one job can be identified with 
+ and at most one job
                     can be identified with 
-. If there is any suspended
                     job, then the current job is a suspended job. If there
                     are at least two suspended jobs, then the previous job
                     is also a suspended job.       
job-number                     A number that can be used to identify the process group
                     to the 
wait, 
fg, 
bg, and 
kill utilities. Using these
                     utilities, the job can be identified by prefixing the
                     job number with 
%.       
state                     One of the following strings in the POSIX Locale:                     
Running                                         Indicates that the job has not been
                                         suspended by a signal and has not
                                         exited.                     
Done                                         Indicates that the job completed
                                         and returned exit status zero.                     
Done(
code)
                                         Indicates that the job completed
                                         normally and that it exited with
                                         the specified 
non-zero exit status,                                         
code, expressed as a decimal
                                         number.                     
Stopped                                         Indicates that the job was stopped.                     
Stopped(SIGTSTP)                                         Indicates that the job was
                                         suspended by the 
SIGTSTP signal.                     
Stopped(SIGSTOP)                                         Indicates that the job was
                                         suspended by the 
SIGSTOP signal.                     
Stopped(SIGTTIN)                                         Indicates that the job was
                                         suspended by the 
SIGTTIN signal.                     
Stopped(SIGTTOU)                                         Indicates that the job was
                                         suspended by the 
SIGTTOU signal.
                     The implementation can substitute the string 
Suspended                     in place of 
Stopped. If the job was terminated by a
                     signal, the format of 
state is unspecified, but it is
                     visibly distinct from all of the other 
state formats
                     shown here and indicates the name or description of the
                     signal causing the termination.       
command                     The associated command that was specified to the shell.
       If the 
-l option is specified, a field containing the process group       
ID is inserted before the 
state field. Also, more processes in a
       process group can be output on separate lines, using only the process       
ID and 
command fields.
ENVIRONMENT VARIABLES
       See 
environ(7) for descriptions of the following environment
       variables that affect the execution of 
jobs, 
fg, and 
bg: 
LANG,       
LC_ALL, 
LC_CTYPE, 
LC_MESSAGES, and 
NLSPATH.
EXIT STATUS
   sh, csh, ksh       The following exit values are returned for 
jobs, 
fg, and 
bg:       
0             Successful completion.       
>0             An error occurred.   
ksh93       The following exit values are returned for 
jobs:       
0             The information for each job is written to standard output.       
>0             One or more jobs does not exist.
       The following exit values are returned for 
fg:       
exit status of last job                                  One or more jobs has been brought into the
                                  foreground.       
non-zero                                  One or more jobs does not exist or has
                                  completed.
       The following exit values are returned for 
bg:       
0             All background jobs are started.       
>0             One more jobs does not exist or there are no background jobs.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:   
csh, sh, ksh       +--------------------+-------------------+
       |  ATTRIBUTE TYPE    |  ATTRIBUTE VALUE  |
       +--------------------+-------------------+
       |Interface Stability | Committed         |
       +--------------------+-------------------+
       |Standard            | See 
standards(7). |
       +--------------------+-------------------+   
ksh93       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Uncommitted     |
       +--------------------+-----------------+
SEE ALSO
       csh(1), 
kill(1), 
ksh(1), 
ksh93(1), 
ps(1), 
sh(1), 
shell_builtins(1),       
stop(1), 
stty(1), 
wait(1), 
signal.h(3HEAD), 
attributes(7),       
environ(7), 
standards(7)                              November 2, 2007                       JOBS(1)