天天看点

10个linux 作业控制的bash 脚本实例

linux和unix都是多任务的操作系统,也就是说系统可以同时运行多个任务或者进程。下面我们来说一下在linux或者unix下用来处理多任务的作业控制命令。

什么是作业控制(job

control)?

作业控制就是可以停止或者暂停正在执行的程序,还可以使暂停的进程重新开始运行。这些都是可以通过我们的shell程序来实现。

1.创建一个linux/unix

作业(job)

在这个例子中:

让我们来多创建几个作业:

2.列出当初正在后台运行的作业

为了查看当前运行的作业的状态,可以输入下面的命令:

命令输出如下:

3.

停止或暂停正在运行的作业

当一个程序正在运行的时候,如果想让该程序在后台执行,可以使用[ctrl]+ [z]或者使用kill命令:

下面举一个通过ctrl+z来暂停正在执行的ping命令:

4.

恢复暂停的作业到前台去运行

我们可以使用fg命令将暂停在后台的ping进程调到前台来运行,用法如下:

如果想操作所有以“ping”开头的命令行作业,可以使用下面的格式:

示例输出:

5.

恢复后台已暂停的进程继续在后台运行

我们可以使用bg命令将后台挂起的进程重新开始执行,示例如下:

从上面示例可以看出,正在运行sleep进程被挂起了。

将挂起在后台的进程重新开始执行

6.

杀掉一个进程

为了杀掉一个linux命令的进程,我们可以输入kill命令加上该进程的作业ID号,用法如下:

示例输出如下:

7.为什么shell在退出后会杀掉所有的后台作业进程

默认情况下,当前shell在退出的时候会发送一个HUP信号,杀掉所有后台作业,如果想让作业在当前shell退出后任然能保持在后台运行,那么可以在输入disown命令,再退出shell程序。

8.使用nohup命令来阻止后台的进程在退出shell后被杀掉

9.

查找最近一次执行的作业的进程号

为了查找最近一次执行的作业的进程ID号,可以使用下面的特殊符号:$!

10.

wait命令等待作业的完成

wait命令用来等待给定进程ID运行完成,而后执行wait命令后的程序

更多参考:

www.osetc.com