图片 4

本身是个新的 Linux/Unix 顾客。笔者该怎么样在 Linux 或类 Unix 系统中应用
BASH/KSH/TCSH 可能依照 POSIX 的 shell
来查阅当前正值进展的作业(job)?在 Unix/Linux
上哪些显示当前功课的状态?(LCTT 译注:job,也常称为“职务”卡塔尔(قطر‎

背景:

作业调控是一种力量,能够告一段落/暂停进度(命令)的实行并按您的渴求持续/复苏它们的履行。那是透过你的操作系统和诸如
bash/ksh 或 POSIX shell 等 shell 来实行的。

翻阅新闻

图片 1

十三个 Linux/Unix下 Bash 和 KSH shell 的作业调节实例

shell 会将眼下所执行的课业保存在叁个表中,能够用 jobs 命令来展现。

[日期:2014-03-13]

用途

在时下 shell 会话中显示作业的事态。

来源:Linux中国

语法

其主导语法如下:

jobs

jobs jobID

或者

jobs [options] jobID

作者:Linux

运行一些作业来扩充以身作则

在始发选取 jobs
命令前,你供给在系统上先运行多个作业。实施以下命令来运转作业:

### 启动 xeyes, calculator, 和 gedit 文本编辑器 ###
xeyes &
gnome-calculator &
gedit fetch-stock-prices.py &

终极,在前台运转 ping 命令:

ping www.cyberciti.biz

Ctrl-Z 键来挂起(suspend) ping 命令的学业。

[字体:大 中 小]

jobs 命令示例

要在时下 shell 展现作业的情状,请输入:

$ jobs

输出示例:

[1]   7895 Running                 gpass &
[2]   7906 Running                 gnome-calculator &
[3]-  7910 Running                 gedit fetch-stock-prices.py &
[4]+  7946 Stopped                 ping cyberciti.biz

要来得名字以“p”伊始的历程 ID 或作业名称,输入:

$ jobs -p %p

或者

$ jobs %p

出口示例:

[4]-  Stopped                 ping cyberciti.biz

字符 %
是一个点名任务的章程。在此个例子中,你能够运用作业名称最早字符串来来暂停它,如
%ping。

Linux 和 Unix
归于多义务的操作系统,也正是说贰个体系在同期段内能运转多种职责(进程State of Qatar。在这里个新的博客体系,作者将会列出相关的
Linux 和 Unix 作业(jobState of Qatar控制的授命,你能够通过这个命令在 Bash 或 Korn 还有POSIX shell 下促成试行多种职责。

哪些展示进度 ID 不含有其他常规的消息?

透过 jobs 命令的 -l(小写的 L)选项列出各个作业的详细新闻,运转:

$ jobs -l

以身作则输出:

图片 2

Fig.01: 在 shell 中显示 jobs 的状态

图片 3

怎么样只列出目前叁遍状态改换的进度?

首先,运营二个新的干活如下所示:

$ sleep 100 &

昨日,只展现自从上次唤醒过甘休或分离之后的课业,输入:

$ jobs -n

示范输出:

[5]-  Running                 sleep 100 &

哪些是作业调整?

仅突显进度 ID(PID)

因此 jobs 命令的 -p 选项仅显示 PID:

$ jobs -p

身教重于言教输出:

7895
7906
7910
7946
7949

作业调节不只是能够结束/挂起(stop/suspend卡塔尔(قطر‎正在执行的经过(命令State of Qatar,也得以三回九转/唤醒(continue/resume卡塔尔国实践你必要的每二个经过。那统统可以用你的操作系统和
bash/ksh 之类的 shell 或 POSIX shell 实现。

什么只体现正在运维的学业呢?

由此 jobs 命令的 -r 选项只体现正在运行的学业,输入:

$ jobs -r

示范输出:

[1]   Running                 gpass &
[2]   Running                 gnome-calculator &
[3]-  Running                 gedit fetch-stock-prices.py &

何人给作业调节的提供了条件?

什么样只展现已经结束工作的课业?

因而 jobs 命令的 -s 选项只展现甘休工作的课业,输入:

$ jobs -s

身体力行输出:

[4]+  Stopped                 ping cyberciti.biz

要继续实施 ping cyberciti.biz 作业,输入以下 bg 命令:

$ bg %4

Bash / Korn shell,或许是 POSIX shell 提必要了作业调节的情状。

jobs 命令选项

摘自 bash(1) 命令 man
手册页:

选项 描述
-l 列出进程 ID 及其它信息。
-p 仅列出进程 ID。
-n 仅列出自从上次输出了状态变化提示(比如显示有进程退出)后的发生了状态变化的进程。
-r 仅显示运行中的作业。
-s 仅显示停止的作业。
-x 运行命令及其参数,并用新的命令的进程 ID 替代所匹配的原有作业的进程组 ID。

跟作业表打个招呼吧

关于 /usr/bin/jobs 和 shell 内建的辨证

输入以下 type 命令寻找是还是不是 jobs 命令是 shell
的内建命令或是外界命令仍然都是:

$ type -a jobs

输出示例:

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

在大约具有境况下,你都亟需运用 BASH/KSH/POSIX shell 内建的jobs
命令。/usr/bin/jobs 命令不能被用在当下 shell 中。/usr/bin/jobs
命令专门的学业在不一样的意况中,并不分享其父 bash/ksh 的 shell 作业。

你的 shell 会留有一张当前功课的表单,称为作业表。当您键入命令时,shell
会给它分配一个 jobID(也称作 JOBSPEC)。贰个 jobID 或
JOBSPEC只是极小的整数数值。

#1: 创立你的第3个 Linux/Unix 作业

本人要运维三个名字为 xeyes 的授命,它会在显示器上海展览中心示三个椭圆的肉眼,输入: $
xeyes &

输出样例:

图片 4

Fig.01: 在后台运转 xeyes 命令

作者使用&符号让三个 job 在后台运行。shell 会打字与印刷一行消息相似如下:

[1]6891

在此个事例中,有七个数字输出,分别表示:

1 : 在后台实施的 xeyes 职务的作业号为 1。

6891 : 作业1的进程ID。

本身在多施行一些 job:

## 运转贰个文书编辑器,X 的系统负荷显示,和 sleep 命令 ##

gedit /tmp/hello.c &

xload &

sleep 100000&

#2: 列出脚下的作业

要翻开当前 shell 的激活的职务情况,输入:

$ jobs

$ jobs -l

出口如下:

[1]9379Running xeyes &

[2]9380Running gedit /tmp/hello.c &

[3]-9420Running xload &

[4]+9421Running sleep 100000&

粗略描述如下:

字段值描述示例

1

[1]

jobID 或 JOB_SPEC – 工作号要与fg, bg, wait,
kill和任何shell命令一齐行使。你必得在做事号前缀增加贰个百分号:(%卡塔尔(قطر‎。

加号 (+卡塔尔 标志着暗中认可的也许以后的作业。

减号 (-卡塔尔国 标志着前三个功课。

%1

fg %1

kill %2

2

9379

进度 ID – 系统自动为各种进程创设并分配地唯有的身份标识号。

kill 9379

3

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注