在Linux中,nohup(no hang-up)命令用于在用戶退出登錄后繼續運行指定的進程。使用nohup可以防止進程因終端關閉或網絡斷開而終止。以下是如何使用nohup命令確保進程持續運行的步驟:
基本用法:
nohup command &
其中,command是你希望持續運行的命令。&符號將命令放入后臺運行。
重定向輸出:
默認情況下,nohup會將命令的輸出重定向到當前目錄下的nohup.out文件。如果你想將輸出重定向到其他文件,可以使用:
nohup command > output.log 2>&1 &
這里,>將標準輸出重定向到output.log,2>&1將標準錯誤重定向到標準輸出,從而將所有輸出都寫入output.log。
查看進程:
你可以使用ps命令查看由nohup啟動的進程:
ps aux | grep command
其中,command是你啟動的命令。
終止進程:
如果你需要終止由nohup啟動的進程,可以使用kill命令。首先找到進程ID(PID),然后使用kill命令終止進程:
kill -9 PID
其中,PID是進程的ID。
假設你想在后臺運行一個Python腳本script.py,并確保它在用戶退出登錄后繼續運行:
nohup python script.py > output.log 2>&1 &
這樣,script.py的輸出會被寫入output.log文件,并且即使你關閉終端,進程也會繼續運行。
nohup命令會忽略掛起信號(SIGHUP),因此即使終端關閉,進程也不會終止。nohup時,建議將輸出重定向到一個文件,以避免輸出到終端并可能導致的混亂。systemd服務或supervisord等工具。通過以上步驟,你可以確保在Linux中使用nohup命令持續運行進程。