對unix,linux類伺服器維護經常是通過ssh完成的,而有些操作比較費時,如更新程式等。此時如果斷開ssh連線的話,更新程式就會隨之被中斷。如何保證斷開ssh後仍舊能保持更新程序的執行呢?有兩種方法:
(1)nohup
#nohup 應用程式名 &
後,如果你斷開了ssh,程式依舊執行。此種方式的缺點是,應用程式沒有互動介面了,程式的輸出將會輸出的乙個***.out檔案中,而且以後無法在介面控制程式的結束。必須通過kill的方式。所以這種方式顯得很簡單粗魯,很少使用。
(2)screen
#screen
車後進入screen子介面,此時putty標題欄會指示處於子介面狀態,然後執行你的程式
#應用程式名
後按下ctrl+a後抬起,然後按下d鍵,此時切換回主介面,putty的視窗標題欄也會指示。
#進行其他的操作,或者exit
時就是斷開ssh,程式仍在執行。以後重新ssh連線後,輸入
#screen -ls
檢視子介面的代號,然後輸入
#screen -r 子介面代號
可以檢視當初你程式執行所在的子介面了。
Linux後台執行程式
shell command dev null 2 1 最後乙個符號 意思是讓程式在後台執行。dev null 的作用是將標準輸入轉向null,這樣就忽略當前的指令碼標準輸出。2 1 的作用是將標準錯誤連線至標準輸出,也將被忽略。一直不明白1 2的作用。原來!作業系統預設指定3個檔案 0標準輸入 1標...
Linux後台執行程式
在我們平常的時候執行程式的時候會產生很多的資訊,這些資訊有時候有用,有時候沒用,不過這些資料都會在該程式的log中儲存,所以把這些資訊放在前台就不是很好。我們可以將指令碼放在後台執行,不要將這些資訊顯示出來。將shell放入後台執行 比如 指令碼名稱 storm.sh 後台執行 storm.sh 這...
Linux 後台執行程式
nohup mqtt dev null 2 1 的意思是在後台執行,在執行 a.out 的時候,即使你用ctrl c,那麼a.out照樣執行 因為對sigint訊號免疫 但是要注意,如果你直接關掉shell後,a.out程序同樣消失。nohup的意思是忽略sighup訊號,所以當執行nohup a....