http://www.cyberciti.biz/faq/unix-linux-jobs-command-examples-usage-syntax
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.
You shell keeps a table of currently executing jobs and can be displayed with jobs command.
jobs
OR
jobs jobID
OR
jobs [options] jobID
Sample outputs:
OR
Sample outputs:
Sample outputs:
Now, only show jobs that have stopped or exited since last notified, type:
Sample outputs:
Sample outputs:
Sample outputs:
Sample outputs:
Sample outputs:
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.
jobs command details | |
---|---|
Description | Show the active jobs in shell |
Category | Processes Management |
Difficulty | Easy |
Root privileges | No |
Estimated completion time | 10m |
Purpose
Displays status of jobs in the current shell session.
Syntax
The basic syntax is as follows:jobs
OR
jobs jobID
OR
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 fetch-stock-prices.py &
Finally, run ping command in foreground:
ping www.cyberciti.biz
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 fetch-stock-prices.py & [4]+ 7946 Stopped ping cyberciti.bizTo display the process ID or jobs for the job whose name begins with "p," enter:
$ jobs -p %p
OR
$ jobs %p
Sample outputs:
[4]- Stopped ping cyberciti.bizThe 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:
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:
7895 7906 7910 7946 7949
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 fetch-stock-prices.py &
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 cyberciti.bizTo resume the ping cyberciti.biz 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/jobsIn 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
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Network Utilities | dig • host • ip |
Processes Management | bg • chroot • disown • fg • jobs • kill • killall • pwdx • time • pidof • pstree |
Searching | whereis • which |
User Information | groups • id • last • lastcomm • logname • users • w • who • whoami • lid • members |
No comments:
Post a Comment