Linux / Unix: jobs Command Examples

jobs command

I am new Linux and Unix user. How do I show the active jobs on Linux or Unix-like systems using BASH/KSH/TCSH or POSIX based shell? How can I display status of jobs in the current session on Unix/Linux?

Job control is nothing but the ability to stop/suspend the execution of processes (command) and continue/resume their execution as per your requirements. This is done using your operating system and shell such as bash/ksh or POSIX shell. [donotprint]

jobs command details
DescriptionShow the active
jobs in shell
Root privilegesNo
Est. reading time10m
Table of contents
[/donotprint] You shell keeps a table of currently executing jobs and can be displayed with jobs command.


Displays status of jobs in the current shell session.


The basic syntax is as follows:



jobs jobID


jobs [options] jobID

Starting few jobs for demonstration purpose

Before you start using jobs command, you need to start couple of jobs on your system. Type the following commands to start jobs:

## Start xeyes, calculator, and gedit text editor ###
xeyes &
gnome-calculator &
gedit &

Finally, run ping command in foreground:


To suspend ping command job hit the Ctrl-Z key sequence.

jobs command examples

To display the status of jobs in the current shell, enter:
$ jobs
Sample outputs:

[1]   7895 Running                 gpass &
[2]   7906 Running                 gnome-calculator &
[3]-  7910 Running                 gedit &
[4]+  7946 Stopped                 ping

To display the process ID or jobs for the job whose name begins with “p,” enter:
$ jobs -p %p
$ jobs %p
Sample outputs:

[4]-  Stopped                 ping

The character % introduces a job specification. In this example, you are using the string whose name begins with suspended command such as %ping.

How do I show process IDs in addition to the normal information?

Pass the -l(lowercase L) option to jobs command for more information about each job listed, run:
$ jobs -l
Sample outputs:

Fig.01: Displaying the status of jobs in the shell

Fig.01: Displaying the status of jobs in the shell

How do I list only processes that have changed status since the last notification?

First, start a new job as follows:
$ sleep 100 &
Now, only show jobs that have stopped or exited since last notified, type:
$ jobs -n
Sample outputs:

[5]-  Running                 sleep 100 &

Display lists process IDs (PIDs) only

Pass the -p option to jobs command to display PIDs only:
$ jobs -p
Sample outputs:


How do I display only running jobs?

Pass the -r option to jobs command to display only running jobs only, type:
$ jobs -r
Sample outputs:

[1]   Running                 gpass &
[2]   Running                 gnome-calculator &
[3]-  Running                 gedit &

How do I display only jobs that have stopped?

Pass the -s option to jobs command to display only stopped jobs only, type:
$ jobs -s
Sample outputs:

[4]+  Stopped                 ping

To resume the ping job by entering the following bg command:
$ bg %4

jobs command options

From the bash(1) command man page:

Option Description
-l Show process id’s in addition to the normal information.
-p Show process id’s only.
-n Show only processes that have changed status since the last notification are printed.
-r Restrict output to running jobs only.
-s Restrict output to stopped jobs only.
-x COMMAND is run after all job specifications that appear in ARGS have been replaced with the process ID of that job’s process group leader./td>

A note about /usr/bin/jobs and shell builtin

Type the following type command to find out whether jobs is part of shell, external command or both:
$ type -a jobs
Sample outputs:

jobs is a shell builtin
jobs is /usr/bin/jobs

In almost all cases you need to use the jobs command that is implemented as a BASH/KSH/POSIX shell built-in. The /usr/bin/jobs command can not be used in the current shell. The /usr/bin/jobs command operates in a different environment and does not share the parent bash/ksh’s shells understanding of jobs.

Related media

This tutorials is also available in a quick video format:

See also
  • bash(1) Linux/Unix command man page

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 1 comment so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersdf ncdu pydf
File Managementcat tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
1 comment… add one
  • aref ghobadi Aug 16, 2015 @ 12:31

    hello, thanks
    jobs print the daemon and stop software

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum