2014-10-28 50 views
2

因此,我有一個長時間運行的腳本(命令幾天)說execute.sh,我打算執行一個服務器上我有一個用戶帳戶...執行即使我註銷也運行的腳本

現在,我想執行這個腳本,以便它永遠運行,即使我註銷或從服務器斷開? 我該怎麼做? THANKs

+0

http://en.wikipedia.org/wiki/Cron – 2014-10-28 19:51:11

+1

[如何使程序從ssh註銷後繼續運行?](http://stackoverflow.com/questions/954302/how -show -shoot-from-ssh) – ErlVolton 2014-10-28 19:52:22

+1

[Linux:阻止後臺進程在關閉SSH客戶端後停止](http:// stackoverflow .COM /問題/ 285015/Linux的防止-A-背景過程 - 從安康 - 停後關緊SSH客戶端) – 2014-10-28 19:54:24

回答

7

您有幾個選擇。最基本的是使用nohup

nohup ./execute.sh 

nohup執行命令作爲一個子進程,並從終端分離,並且如果收到SIGHUP繼續運行。這個信號意味着sig hangup,並且如果你關閉一個終端並且一個進程仍然連接到它,它將被觸發。

該進程的輸出將被重定向到一個文件,該文件位於當前目錄中,默認爲nohup.out


您還可以使用bashdisown功能。您可以在bash啓動腳本:

./execute.sh 

然後按下Ctrl鍵+ž然後輸入:

disown 

過程將現在後臺運行,從終端分離。如果你關心腳本輸出可能會輸出重定向到一個日誌文件:

./execute.sh > execute.log 2>&1 

另一種選擇是在遠程機器上安裝screen,在屏幕會話中運行命令,並從中分離。你會發現很多關於這個的教程。

1

nohup(不掛斷),並在後臺運行它:

nohup execute.sh & 

輸出,通常會去到屏幕(標準輸出)會去一個名爲nohup.out的文件。

相關問題