nohup命令和screen命令

2021-09-18 01:55:39 字數 981 閱讀 6795

我們用遠端終端連線遠端主機的時候,有的程式要首席執行官達幾小時甚至幾天。例如晚上10點半,我在遠端終端上啟動乙個spark程式,有一些結果重定向到標準輸出,這個程式要執行10小時。第二天早上一看,遠端終端斷開了,一看程式執行結果,只執行了3小時就中斷了。

通過遠端終端啟動的程式,當遠端終端斷開會話的時候,程式也會終止。

您可以執行如下命令

nohup [您本來要執行的命令] &
例如,我本來要執行,python test.py,現在改為執行:

nohup python test.py &
這樣,我就可以關掉終端,程式會一直執行到結束(遠端主機正常的情況下)。程式本來要重定向到標準輸出的結果會重定向到當前目錄的nohup.txt。

nohup命令有個問題就是,你第二次開啟終端的時候,你無法在終端看到程式的執行結果,無法看到重定向到標準輸出的結果。解決辦法是:用screen命令,這個命令可能需要安裝,安裝命令:

sudo apt install screen
安裝完成之後,執行

screen
進入乙個"screen"後,執行

python test.py
關閉終端,程式依然在執行

重新開啟終端,執行

screen -r [screen資訊]    # 可以輸入 screen -r 檢視有哪些程序,再確定字尾哪些資訊
即可看到程式執行的情況,和直接執行[python test.py]看到的結果一樣

需要掌握一些程序命令:

ps -aus | grep python
上面的命令是查詢並過濾"python"相關的程序,其他類似

kill 12345
上面的命令是殺死程序號為12345的程序

nohup 執行mysql命令 nohup命令

在應用unix linux時,我們一般想讓某個程式在後台執行,於是我們將常會用 在程式結尾來讓程式自動執行。比如我們要執行mysql在後台 usr local mysql bin mysqld safe user mysql 可是有很多程式並不想mysqld一樣,這樣我們就需要nohup命令,怎樣使...

用screen 取代nohup命令

大家在起後台服務,或者長時間執行某個指令碼的時候。是不是感覺,互動性很差,有時,想把結果直接在終端上輸出,又怕不小心關閉了終端導致程序退出?有些sshd服務還會設定連線超時,自動退出終端 現在用screen這個指令可以很好的解決跑後台服務的尷尬。命令其實超簡單的 直接在終端上輸入 screen 這個...

後台執行命令 和nohup

當 我們在終端或控制台工作時,可能不希望由於執行乙個作業而佔住了螢幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對於密集訪問磁碟的程序,你可能 希望它能夠在每天的非負荷高峰時間段執行。為了使這些程序能夠在後台執行,也就是說不在終端螢幕上執行,有幾種選擇方法可供使用。設定crontab 檔案,並...