JOBS(Linux命令)

2023-02-12 47阅读

温馨提示:这篇文章已超过525天没有更新,请注意相关的内容是否还可用!

JOBS

Linux命令

jobs是Linux命令jobs命令显示了当前shell环境中已启动的作业状态。jobs-l选项可显示所有任务的PID,jobs的状态可以是running,stopped,Terminated,但是如果任务被终止了(kill),shell从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息。

外文名jobs
用途显示当前会话的作业状态
语法jobs[-l|-n|-p]JobID
命令在命令执行环境下执行就不会工作

命令描述

/usr/bin/jobs,因为此环境没有适用的作业来处理。基于这个原因,jobs命令实现为一个Kornshell或POSIXshell的常规内建命令。

如果指定了-p标志,对于每一个进程标识,输出构成一行。如果没有指定标志,标准输出为带以下字段的几行:

job-number指出进程组号,以和wait、fg、bg和kill命令一起使用。当和这些命令一起使用时,在作业号前面加上一个“%”(百分号标志)。

current一个“+”(加标志)标识了将被fg或bg命令作为缺省值使用的作业。这个作业标识也能够使用%+(百分号、加号)或%%(双百分号)来指定。

如果当前缺省作业退出,就用一个“-”(减号标志)来标识将要成为缺省作业的作业。这个作业标识也可以用%-(百分号、减号)来指定。

对于其他的作业,current字段是一个空格字符。仅一个作业能够用+来标识,并且仅一个作业能够用一个-来标识。如果有一个单一挂起作业,它就成为当前作业。如果存在至少两个挂起的作业,那么前面的作业被挂起。

state显示以下值之一(在POSIX的语言环境下):

Running

表示此作业没有被信号挂起并没有退出。

Done

表示此作业已经完成并返回退出状态0。

Done(code)

表示此作业已经正常完成和退出并返回指定的非零退出状态码。这个代码用一个十进制数来表示。

Stopped

表示此作业已经挂起。

Stopped(SIGTSTP)

表示SIGTSTP信号挂起作业。

Stopped(SIGSTOP)

表示SIGSTOP信号挂起作业。

Stopped(SIGTTIN)

表示SIGTTIN信号挂起作业。

Stopped(SIGTTOU)

表示SIGTTOU信号挂起作业。

command给shell的有关命令。

如果指定了-l标志,就把一包含进程组标识的字段插入到state字段之前。另外,在一个进程组中更多的进程可以输出到一些独立行中,只使用job-number和command字段。

标志

-l(小写L)提供了更多的关于列出的每一个作业的信息。此信息包括了作业号、当前作业、进程组标识、状态和启动作业的命令。

-n显示自从最后一次通知后停止或退出的作业。

-p显示了所选定的作业的进程组引导符的进程标识。

在缺省情况下,jobs命令显示了所有已停止作业的状态、所有的在后台正在运行的作业和那些状态已经更改但没有被shell报告的作业。

退出状态

返回下面的退出值:

0成功完成。

>0发生一个错误。

命令示例

1.要显示当前环境下的作业的状态,请输入:

jobs-l

屏幕输出与以下输出类似的报告:

+139RunningCC-Cfooc&

-465Stoppedmailmorris

687Done(1)foo.bar&

2.要显示那些名字以“m”打头的作业的进程标识,请输入:

job-p%m

使用示例1中报告的作业,屏幕显示以下进程标识:

465

文件

/usr/bin/ksh包含Kornshelljobs内置命令。

/usr/bin/jobs包含jobs命令。

参考资料

1.Linux后台进程管理的一些命令小结·中国知网

目录[+]