shell退出後後台程式保持執行

2022-09-24 00:51:09 字數 525 閱讀 6017

shell退出後後台程式保持執行

在liunx上,如果想讓乙個程序在後台執行,最直接的方法是用&符號. 

比如ping www.baidu.com & 

但是這樣一來,這個程序便成為了當前shell的乙個job,在shell退出時,job會收到乙個訊號,也隨之停止. 

處理這個問題,可以使用nohup命令,讓job忽略shell的退出訊號,也可以採用其他方式. 

既然後台命令作為shell的子程序會在shell退出時被殺掉,那麼只要不讓後台命令作為shell的子程序即可.比較簡單的方式是利用subshell來呼叫後台命令. 

比如寫個start.sh 

然後在shell中呼叫start.sh. 

./start.sh 

我猜測雖然start.sh是ping命令的父程序,但是start.sh執行完畢就退出了,ping命令成了孤兒程序,會被init程序收養.所以退出shell也不會導致ping命令中斷  

jobs 顯示後台程式

作用 jobs命令顯示後台任務的執 況。用法 jobs 選項 jobspec 主要選項如下。l 長輸出用法,顯示全部內容。n 不輸出資訊。p 只輸出程序號。r 只輸出執行的程序。jobspec 表示後台任務號碼。應用例項如下。先把兩個程序放在系統後台執行,然後使用jobs命令檢視後台任務的執 況 d...

nohup後台執行 關閉後台程式

參考 在跑時間比較長的程式,或者列印資訊比較多,或者網路不穩定時,可以採用後台執行程式,然後把列印資訊儲存在檔案中,等程式結束後再檢查日誌,完成該功能可以用以下命令 1.nohup python3 u test.py test.log 2 1 2.回車 3.輸入exit命令退出終端 4.關閉shel...

ubuntu 前台程式和後台程式

以前知道了 命令後,經常使用她把程式從前台轉換到後台。後來突然想時候那個程式了,我不知所措了。本文與 ubuntu 前台程式和後台程式 這裡一般是命令後加乙個 命令即可。比如 1 31098 2 31570 輸入命令 jobs 後,發現我們的那個後台程式了。1 running pc2server 2...