Linux後台執行程式解析

2021-12-30 08:07:40 字數 567 閱讀 5363

對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....