linux进程管理之作业管理

一、bash环境下作业的分类

1、bash环境下存在前台和后台两种作业:

  • 前台作业:通过终端启动,且启动后一直占据终端
  • 后台作业:可以通过终端启动,但启动后即转入后台运行

2、如何查看作业是前台运行还是后台运行的呢?

        我们可以通过ps命令查看:

      如上图所示,在tty项出现了三种值,?、pts/1和tty1。其中?代表的是后台进程,tty1和pts/1代表的是前台进程。在centos7中,tty1表示的是字符行的终端,pts代表的是伪终端(比如使用Xshell连接主机出现的终端就是伪终端),pts/n,n代表第n+1个伪终端,因为n是从0开始排序的。如下图可以方便理解终端和伪终端。

二、作业的前后台切换

我们可以将前台作业切换到后台执行,以及运行和停止后台作业,如下图所示:

涉及的命令:

1、使用jobs命令列出【当前终端】已停止或正在启动的后台作业

       当我们使用fg/bg/kill -19 %xx时,其中的“jobNumber”就是使用jobs命令输出的第一列序号数值。比如将1号作业后台启动:

bg 1

2、  信号发送命令kill

查看帮助:man 7 signal
常用信号:
0         //用来检查进程健康性
1 SIGHUP  //无须关闭进程而让其重新读取配置文件
2 SIGINT  //中止正在运行的进程,相当于Ctrl + c
3 SIGQUIT //相当于Ctrl + \
9 SIGKILL //强制杀死正在运行的进程,慎用
15 SIGTERM //终止正在运行的信号,默认信号
18 SIGCONT //继续运行
19 SIGSTOP //后台休眠

3、 使用fg命令将后台作业运行到前台

fg jobNumber

需要注意的是:

       这里使用CMD&或者是使用【Ctrl + z】将作业送往后台,其依然与终端相关,退出终端将关闭后台作业。如果希望将作业送往后台后,剥离与终端的关系,那么可以使用如下命令:

        ① nohub                 //此命令会将后台作业的输出内容存放在nohub.out文件中

        ② screen

三、后台作业并行运行

默认情况下,前台作业会阻塞终端,直到该作业完成。如果你想并行运行多个前台作业,我们可以通过后台执行,实现并行功能,提高效率。

案例一:同时测试三台主机的网络连通性

1、前台作业

使用命令:

ping 127.1;ping 127.2;ping 127.3

只有退出命令1才能执行命令2,效率低。

2、后台作业

使用命令:

(ping 127.1&);(ping 127.2&);(ping 127.3&)

任务并行执行,效率高。这时候通过【Ctrl + c】是不能直接退出的,我们可以通过killall ping命令终止此作业。

案例二:测试192.168.80.0/24网段所有主机是否在线

1、逐步执行

使用脚本:

#!/bin/bash
network=192.168.80
startTime=`date +"%H:%M:%S"`
for i in {1..254};do
        ping -c1 -W1 $network.$i &> /dev/null && echo "$network.$i is up" || echo "$network.$i is down"
done
endTime=`date +"%H:%M:%S"`
echo "endTime:$endTime,startTime:$startTime"

脚本执行时间:

总结:每个ping命令依次执行,耗时长,时间效率低。

2、并行执行

使用如下脚本:


#!/bin/bash
network=192.168.80
startTime=`date +"%H:%M:%S"`
for i in {1..254};do
        {
                ping -c1 -W1 $network.$i &> /dev/null && echo "$network.$i is up" || echo "$network.$i is down"
        }&
done
endTime=`date +"%H:%M:%S"`
echo "endTime:$endTime,startTime:$startTime"
wait

代码执行时间:

总结:ping命令并发执行,耗时短,时间效率高 。

参考文章:终端 /dev/tty - 清水湾 - 博客园

Linux的作业管理 - 大师兄啊哈 - 博客园

https://cloud.tencent.com/developer/article/1573127

Linux中tty、pty和pts概念及区别 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值