JOBS(Linux命令)
温馨提示:这篇文章已超过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后台进程管理的一些命令小结·中国知网