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


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

过程后发现:

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

分析原因如下:

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

具体原因分析:

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

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

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

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

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

 

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

 

 

 

第二次跑一个进程:

 

 

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

 

欢迎批评指正!

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM