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


今天接到用戶反饋,說nohup   ... & 執行后,終端斷開后任務不在了。

過程后發現:

執行 命令后,退出連接,再次使用jobs查看,沒有后台作業。

分析原因如下:

jobs 是查看當前終端的后台作業。

具體原因分析:

​jobs是查看當前后台作業(進程),是獲取本次bash進程下子進程的后台作業。

當本次終端退出后,后台作業變成孤兒進程,孤兒進程有系統父進程接管。

當再次連接終端時,原作業與當前終端,不存在關系父子關系,故看不到進程。

但是原作業,會在系統中一致運行,直到完成或被停止。

這就是為什么終端退出后,jobs看不到的原因了。

 

測試效果:第一次跑一個進程:

 

 

 

第二次跑一個進程:

 

 

每次bash的進程id是不一樣的~~ 第一次27461 第二次27509,所以進程樹是不同的~~~

 

歡迎批評指正!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM