2013-02-16 129 views
0

我編寫了一個運行服務的shell腳本。我打開終端,運行運行該服務的腳本,並在腳本結束後關閉終端,但服務仍在運行,這就是我想要的。「在終端中運行」的奇怪行爲,它會終止進程

無論如何,如果我通過Gnome命令「Run in terminal」運行腳本,當終端關閉時,服務也會被終止。

這很奇怪,我不明白爲什麼,我無法解決這個問題。

任何想法?

回答

2

嘗試執行

nohup ./shell_script & 

nohup命令使得該方法繼續執行終端已經關閉後,忽略SIGHUP信號。

注意腳本將在後臺執行,輸出將附加到文件中。

+2

@ l3golas另外,上面的命令將輸出執行的shell腳本的進程ID,因此您可以在再次登錄時監視它。 – user1428716 2013-02-16 16:44:06

+0

太棒了!它現在完美運行!非常感謝! – l3golas 2013-02-16 22:07:47

+0

現在我只有一個問題:顯然,「在終端中運行」的行爲與打開終端,執行腳本並關閉終端的行爲不同,因爲退出時的第一個操作會殺死腳本(除非使用nohup ),第二個而不是殺死它。你知道爲什麼嗎? – l3golas 2013-02-16 22:10:33