後台程式的生命週期

後台程式的生命週期

如果您使用 & 選項在終端機中啟動背景程式。關閉終端後它會停止嗎?

答案1

當你掛斷終點站。終端不一定有存在的概念關閉

帶終端模擬器程式,沒有任何真正的掛起,但關閉模擬器程式會觸發模擬終端掛起。 (更嚴格地說:關閉偽終端設備的主端相當於從端的終端掛起。)並非所有模擬器程式都有關閉的概念。內建於作業系統核心中,提供核心的虛擬終端例如,不能“關閉”。

對於真實終端,有一個帶有載波檢測線的串行端口,如果遠端終端上的撥入用戶掛斷電話連接,則可能會發生真實調製解調器掛斷。

這一切都可以追溯到帶有遠端終端的分時系統時代,用戶在使用時需要付費。如果一個人不小心失去了電話連接,那麼人們肯定不希望為仍在運行的程式付費,可能直到下一次系統重新啟動為止。相反,系統管理員和其他使用者不希望程式仍在運作並連接到現在名義上空閒的終端,然後可能將其指派給其他撥入使用者。

從那以後很多事情改變了。首先,BSD 作業控制激發了掛斷訊號分配的變化並引入了會議主持人它負責登入會話中的工作,其死亡被認為對這些工作是毀滅性的打擊。我們已經獲得了透過網路遠端登入的想法GUI 登入會話。終端仿真器程式已經變得如此普遍,以至於人們將它們與它們所代表的終端混為一談。模仿

但基本想法仍然是,在正常情況下,當使用者進程的終端會話停止時,使用者進程會以某種方式終止,即使是透過會話領導者的調解。

答案2

訪問從終端在背景運行程序或者從終端啟動和分離程式最有效的方法?

如果您使用 & 選項在終端機中啟動背景程式。關閉終端後它會停止嗎?

我發現gnome-terminal透過點擊關閉按鈕關閉可能會導致該程式停止/終止。如果你關閉終端exit命令比程式不會關閉/停止/終止。

答案3

是的,它會停止。為了避免程序被停止,請使用nohup.

例如,nohup firefox > /dev/null 2>&1 &,將允許在背景執行 Firefox 而無需關閉,並防止在控制台上顯示錯誤/輸出

相關內容