jobs命令查看不到任务的原因

今天接到用户反馈,说nohup   ... & 执行后,终端断开后任务不在了。

过程后发现:

执行 命令后,退出连接,再次使用jobs查看,没有后台作业。

分析原因如下:

jobs 是查看当前终端的后台作业。

具体原因分析:

​jobs是查看当前后台作业(进程),是获取本次bash进程下子进程的后台作业。

当本次终端退出后,后台作业变成孤儿进程,孤儿进程有系统父进程接管。

当再次连接终端时,原作业与当前终端,不存在关系父子关系,故看不到进程。

但是原作业,会在系统中一致运行,直到完成或被停止。

这就是为什么终端退出后,jobs看不到的原因了。

测试效果:第一次跑一个进程:

第二次跑一个进程:

每次bash的进程id是不一样的~~ 第一次27461 第二次27509,所以进程树是不同的~~~

欢迎批评指正!

原文地址:https://www.cnblogs.com/if-then/p/12856032.html