translation by strugglingyouth Linux / Unix: jobs Command Examples ================================================================================ 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. ### 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.biz To 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.biz 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](http://s0.cyberciti.org/uploads/faq/2013/02/jobs-command-output.jpg) 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: 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.biz To resume the ping cyberciti.biz job by entering the following bg command: $ bg %4 ### jobs command options ### From the [bash(1)][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> |