JOBS(1) | User Commands | JOBS(1) |
jobs [-l]
fg [% job_id]
bg [% job_id]...
notify [% job_id]...
stop % job_id...
stop pid...
jobs [-lnp] [job_id...]
fg [job_id...]
bg [job_id...]
-l
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.
% %+ %%
%−
%j
%?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.
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
-n
-p
job_id can be specified to jobs, fg, and bg as one of the following:
number
-number
%number
%string
%?string
%+
%%
%-
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.
"%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
job-number
state
Running
Done
Done(code)
Stopped
Stopped(SIGTSTP)
Stopped(SIGSTOP)
Stopped(SIGTTIN)
Stopped(SIGTTOU)
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
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.
0
>0
0
>0
The following exit values are returned for fg:
exit status of last job
non-zero
The following exit values are returned for bg:
0
>0
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Committed |
Standard | See standards(5). |
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Uncommitted |
February 9, 2021 |