了解nohup和 的功效

2022-07-29 01:03:14 字數 2202 閱讀 2795

nohup和&究竟有啥區別?

不少同學進行了回覆,但並不是所有同學都理解得全對,今天把自己挖的坑自己填了。

測試**如下:

是乙個輸出

hello

與迴圈輪數的死迴圈程式,每輸出一行就休眠1秒。

使用 ./a.out 前台執行程式,會是什麼效果呢?

程式每隔一秒會在終端輸出乙個字串。

此時如果

鍵入ctrl+c

,程式會收到乙個sigint訊號,如果不做特殊處理,程式的預設行為是

終止(如上圖)。

使用 ./a.out& 後台執行程式,會是什麼效果呢?

如上圖:

ps確認一下,確認程序依然在執行,程序號是

此時如果關掉session,程式會收到乙個sighup訊號,此時會怎麼樣呢?

ps再次確認,可以看到

關閉session

之後,程序號是32389的a.out

程序也關閉了

使用nohup ./a.out 又會是什麼效果呢?

使用nohup 執行程式a.out,會發現:

手動ps

看程序號,這次

a.out

的程序號是

此時如果關掉

session

,程式會收到乙個

sighup

訊號,程式會不會關閉呢?

關掉session後

,再次ps看一下,id為32437的a.out

程序還在

。這些只能通過kill把程式乾掉了,killall之後,ps檢視程序已經關閉。

killall之後,檢視發現

多了乙個nohup.out檔案,不過這個檔案的大小是0,有點奇怪

仍如上圖,使用nohup啟動a.out,如果

鍵入ctrl+c

,程式收到sigint訊號後,直接

關閉了。

最後測試一下nohup和&同時使用,即用nohup./a.out &執行程式,又會是什麼效果呢?

使用nohup ./a.out &執行程式後,可以看到:

鍵入ctrl + c,傳送sigint訊號,似乎沒反應。

關閉session,傳送sighup訊號,再來看看。

id為32524的程序依然存在,後續也只能用kill來關閉它。

結論

使用&後台執行程式:

使用nohup執行程式:

平日線上經常使用nohup和&配合來啟動程式

同時,還有乙個最佳實踐:

尾巴

nohup啟動a.out,程式終止後,為啥nohup.out的大小是0?「hello」的字串哪去了?

Linux系列 了解nohup和 的功效

測試 如下 是乙個輸出 tinywan字串與迴圈輪數的死迴圈程式,每輸出一行就休眠1秒。原始輸出 前台執行該程式執行效果 程式每隔一秒會在終端輸出乙個字串 此時如果鍵入 ctrl c 程式會收到乙個 sigint訊號,如果不做特殊處理,程式的預設行為是終止 如上圖 訊號量 sigint 程式終止 i...

深入了解nohup

昨日寫了一篇關於 nohup後台執行程式 文章 修復 正確操作nohup讓程式始終在後台執行 中已發現的問題 今天幫助開發人員具體解決了乙個問題。註解 dump為研發人員開發的程式 test.sh為測試nohup的指令碼,指令碼內容見20行 35行。root ce340 gliver killall...

深入了解nohup

原始出處 作者資訊和本宣告。否則將追究法律責任。昨日寫了一篇關於 nohup後台執行程式 文章 修復 正確操作nohup讓程式始終在後台執行 中已發現的問題 今天幫助開發人員具體解決了乙個問題。註解 dump為研發人員開發的程式 test.sh為測試nohup的指令碼,指令碼內容見20行 35行。1...