Provided by: manpages-posix_2.16-1_all bug

NAME

       jobs - display status of jobs in the current session

SYNOPSIS

       jobs [-l| -p][job_id...]

DESCRIPTION

       The jobs utility shall display the status of jobs that were started in the current shell environment; see
       Shell Execution Environment .

       When jobs reports the termination status of a job, the shell shall remove its process ID from the list of
       those "known in the current shell execution environment''; see Asynchronous Lists .

OPTIONS

       The  jobs  utility  shall  conform  to the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2,
       Utility Syntax Guidelines.

       The following options shall be supported:

       -l     (The letter ell.) Provide more information about each job listed.  This information shall  include
              the job number, current job, process group ID, state, and the command that formed the job.

       -p     Display only the process IDs for the process group leaders of the selected jobs.

       By  default,  the  jobs utility shall display the status of all stopped jobs, running background jobs and
       all jobs whose status has changed and have not been reported by the shell.

OPERANDS

       The following operand shall be supported:

       job_id Specifies the jobs for which the status is to be displayed. If no  job_id  is  given,  the  status
              information  for  all  jobs  shall  be  displayed.  The  format of job_id is described in the Base
              Definitions volume of IEEE Std 1003.1-2001, Section 3.203, Job Control Job ID.

STDIN

       Not used.

INPUT FILES

       None.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of jobs:

       LANG   Provide a default value for the internationalization variables that are unset or  null.  (See  the
              Base  Definitions  volume of IEEE Std 1003.1-2001, Section 8.2, Internationalization Variables for
              the  precedence  of  internationalization  variables  used  to  determine  the  values  of  locale
              categories.)

       LC_ALL If  set  to  a  non-empty  string value, override the values of all the other internationalization
              variables.

       LC_CTYPE
              Determine the locale for the interpretation of sequences of bytes of text data as characters  (for
              example, single-byte as opposed to multi-byte characters in arguments).

       LC_MESSAGES
              Determine  the locale that should be used to affect the format and contents of diagnostic messages
              written to standard error and informative messages written to standard output.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       If the -p option is specified, the output shall consist of one line for each process ID:

              "%d\n", <process ID>

       Otherwise, if the -l option is not specified, the output shall be a series of lines of the form:

              "[%d] %c %s %s\n", <job-number>, <current>, <state>, <command>

       where the fields shall be as follows:

       <current>
              The character '+' identifies the job that would be used as a default for the fg or  bg  utilities;
              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>. 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 shall be a suspended job. If there are at least two suspended jobs, then
              the previous job also shall be 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 suspended by the SIGTSTP signal.

       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 may substitute the string Suspended in place of Stopped. If the job was terminated  by
       a  signal,  the  format of <state> is unspecified, but it shall be visibly distinct from all of the other
       <state> formats shown here and shall  indicate  the  name  or  description  of  the  signal  causing  the
       termination.

       <command>
              The associated command that was given to the shell.

       If  the  -l  option  is  specified,  a field containing the process group ID shall be inserted before the
       <state> field. Also, more processes in a process group may be output on separate lines,  using  only  the
       process ID and <command> fields.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0     Successful completion.

       >0     An error occurred.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       The  -p  option  is  the  only  portable  way  to  find  out the process group of a job because different
       implementations have different strategies for defining the process group of the job.  Usage  such  as  $(
       jobs  -p)  provides  a  way of referring to the process group of the job in an implementation-independent
       way.

       The jobs utility does not work as expected when it is operating in its own utility execution  environment
       because that environment has no applicable jobs to manipulate. See the APPLICATION USAGE section for bg .
       For this reason, jobs is generally implemented as a shell regular built-in.

EXAMPLES

       None.

RATIONALE

       Both "%%" and "%+" are used to refer to the current job.  Both  forms  are  of  equal  validity-the  "%%"
       mirroring  "$$"  and  "%+"  mirroring  the output of jobs.  Both forms reflect historical practice of the
       KornShell and the C shell with job control.

       The job control features provided by bg, fg, and jobs are based on the KornShell. The standard developers
       examined the characteristics of the C shell versions of these utilities and found that differences exist.
       Despite widespread use of the  C  shell,  the  KornShell  versions  were  selected  for  this  volume  of
       IEEE Std 1003.1-2001  to maintain a degree of uniformity with the rest of the KornShell features selected
       (such as the very popular command line editing features).

       The jobs utility is not dependent on the job control option, as are  the  seemingly  related  bg  and  fg
       utilities  because  jobs  is  useful  for  examining  background jobs, regardless of the condition of job
       control.  When the user has invoked a set +m command and job control has been turned off, jobs can  still
       be used to examine the background jobs associated with that current session.  Similarly, kill can then be
       used to kill background jobs with kill% <background job number>.

       The output for terminated jobs is  left  unspecified  to  accommodate  various  historical  systems.  The
       following formats have been witnessed:

        1. Killed( signal name)

        2. signal name

        3. signal name( coredump)

        4. signal description- core dumped

       Most  users  should be able to understand these formats, although it means that applications have trouble
       parsing them.

       The calculation of job IDs was not described since this would suggest an implementation, which may impose
       unnecessary restrictions.

       In  an early proposal, a -n option was included to "Display the status of jobs that have changed, exited,
       or stopped since the last status report". It was removed because the  shell  always  writes  any  changed
       status of jobs before each prompt.

FUTURE DIRECTIONS

       None.

SEE ALSO

       Shell Execution Environment , bg , fg , kill() , wait()

COPYRIGHT

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition,
       Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open  Group  Base
       Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers,
       Inc and The Open Group. In the event of any discrepancy between this version and the  original  IEEE  and
       The  Open  Group  Standard,  the  original  IEEE and The Open Group Standard is the referee document. The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .