linux:作业控制 jobs命令 kill命令 bg和fg命令

杨无尘
2023-12-01

作业控制

如前所述,在一个命令行的末尾加上“&”就使该命令成为了后台作业。后台作业的运行级别低于前台作业(进程)。

若set命令的monitor选项被打开,即执行命令set -0 monitor,则交互式shell就实施作业管理。有关作业管理的命令有jobs、kill、 bg、fg 和wait.

jobs 命令

jobs命令不带参数时,可列出当前尚未完成的作业。例如:

$ jobs

[2] +Done who| wC -cl

[1] -Stopped(SIGTTOU) man 1s

“[]"中的小整数是作业号,每个作业对应一 个号码。作业号后的“+”表示该作业为当前作业,而“_”表示前一个作业。当前作业就是最后一个后台程序。 在“+”“-”后给出作业状态: Done表示刚结束的作业,Stopped 表示挂起的作业。每行的最后是产生该作业的命令。

kill 命令

kill命令可以向指定的进程发送TERM (终止)信号或指定信号,其中一些信号可以使作业中止运行。TERM信号(15)通常使作业正常终止运行,信号9可立即终止由PID指定的进程。例如:

kill -9 1893

即终止PID为1893的进程的运行。

信号名。信号可以由信号号码(si)或信号名(signame)指定。俞令kill -1 可以列出全部信号名。
bg和fg 命令

bg命令把前台作业切换成后台作业。仅当作业控制被激活时,这个命令才起作用。其语法格式如下:

bg [job…]

例如:

bg %1

可把指定的作业1放入后台。如果没有指定作业号,就把当前作业放入后台。

实际上,用户很少直接用bg命令把一个 前台作业换到后台。因为前台作业运行时,用户无法输入bg命令。往往先按Ctrl+Z 组合键,将前台进程挂起,然后在提示符后输入bg命令,就把最近挂起的作业送到了后台运行。

fg命令把后台作业切换成前台作业。仅当作业控制被激活时,这个命令才起作用。其语法格式如下:

fg [ job…]

其中,job为进程ID或作业号。例如:

fg %1

把作业1从后台换到前台。当默认时,就把当前后台进程切换到前台。

 类似资料: