jobs后台任务的一些常用操作

版权声明:本文原创,转载请注明出处。 https://blog.csdn.net/weixin_39004901/article/details/88944750

由于某些脚本或程序执行时间较长,需要将其放到后台去执行,那么放到后台之后怎么知道是否正常运行呢?怎么将其重新放到前台呢?怎么去结束一个正在后台运行的任务呢?

1.查看后台任务情况
jobs
-l:显示进程号;
-p:仅任务对应的显示进程号;
-n:显示任务状态的变化;
-r:仅输出运行状态(running)的任务;
-s:仅输出停止状态(stoped)的任务。
例如:

[root@master test]# jobs -l
[1]-  6096 Running                 sh bg_test.sh &
[2]+  6100 Running                 ./bg_test.sh &

输出信息第一列是任务编号,带加号的作业被当做默认作业,带减号的为下一个默认作业;
第二列是作业运行状态,常见的有Running,Stopped,Done。

可以以通配的方式来显示特定作业信息:

[root@master test]# jobs -l %sh
[1]-  6096 Running                 sh bg_test.sh &

2.将前台任务放到后台运行
①在前台任务运行的时候使用快捷键ctrl+z,放到后台时会自动停止任务,需要通过jobs获取任务编号num,并使用bg %num来将任务继续运行;
②sh bg_test.sh &
③nohup bg_test.sh &
第一、二种方式当终端关闭后,任务会终止;而第三种方式即使关闭终端也不会影响后台任务的运行,但打开新的终端后,无法通过jobs查看该后台任务,可以用ps找到。

3.将后台任务放到前台
通过jobs获取任务编号num,使用fg %num来放到前台。

4.结束一个后台任务
通过jobs获取任务编号num,使用kill %num来结束该后台任务。

猜你喜欢

转载自blog.csdn.net/weixin_39004901/article/details/88944750