由於網路等原因,當ssh鏈結斷開後,該會話中的程序會收到核心發出的sig_hup(掛機)訊號,預設情況下程式會結束執行。所以想要長期穩定地執行乙個程序,可以將其放入後台。
一種簡單方法是用shell的作業控制機制來實現。執行python test.py
時,只需在shell中輸入以下命令
nohup python test.py >log.txt 2>&1 &
便可以讓程式不響應sig_hup訊號、放入後台執行,所有輸出(stdout和stderr)都被重定向至log.txt檔案中,直接用文字閱讀器開啟檢視即可。可以使用top
或ps -elf
來檢視所有執行的程序,使用kill 程序pid
來結束程序。
另一種方法是借助screen
和tmux
這種工具,建立乙個與ssh無關的會話。
在iOS中後台執行程式
ios預設是不支援程式的後台執行的,但是也提供了一些途徑來使得程式能後在切入後台時也正常工作。其中拋開常見的後台 等擦邊球手段,比較正規的就是聲請乙個後台任務,但是任務的執行時間被限制為10分鐘,並且在10分鐘之後再次聲請也不會成功。本文採用的手段就是在聲請10分鐘的任務時間到達時利用乙個while...
Linux後台執行程式
shell command dev null 2 1 最後乙個符號 意思是讓程式在後台執行。dev null 的作用是將標準輸入轉向null,這樣就忽略當前的指令碼標準輸出。2 1 的作用是將標準錯誤連線至標準輸出,也將被忽略。一直不明白1 2的作用。原來!作業系統預設指定3個檔案 0標準輸入 1標...
Linux後台執行程式
在我們平常的時候執行程式的時候會產生很多的資訊,這些資訊有時候有用,有時候沒用,不過這些資料都會在該程式的log中儲存,所以把這些資訊放在前台就不是很好。我們可以將指令碼放在後台執行,不要將這些資訊顯示出來。將shell放入後台執行 比如 指令碼名稱 storm.sh 後台執行 storm.sh 這...