nohup(no hang-up)命令是 Linux 系統中用于在用戶退出登錄后繼續運行指定命令或腳本的工具。通過使用 nohup 命令,可以確保進程在關閉終端或注銷后仍然繼續運行。以下是如何利用 nohup 命令實現 Linux 進程持久化的步驟:
運行單個命令:
nohup your_command &
例如:
nohup sleep 3600 &
這將使 sleep 3600 命令在后臺運行,并且即使關閉終端,該命令也會繼續執行。
運行腳本:
nohup ./your_script.sh &
例如:
nohup ./my_script.sh &
默認情況下,nohup 會將命令的輸出重定向到 nohup.out 文件中。如果你想指定輸出文件,可以使用以下語法:
nohup your_command > output.log 2>&1 &
> 將標準輸出重定向到 output.log。2>&1 將標準錯誤輸出重定向到標準輸出,即 output.log。例如:
nohup my_script.sh > my_output.log 2>&1 &
你可以使用 ps 命令來查看由 nohup 啟動的進程:
ps aux | grep nohup
或者更具體地查找某個命令的進程:
ps aux | grep your_command
如果你需要終止由 nohup 啟動的進程,可以使用 kill 命令。首先找到進程的 PID(進程 ID),然后使用 kill 命令終止它:
kill -9 PID
例如:
kill -9 12345
nohup 命令后面必須加上 & 符號,以確保命令在后臺運行。nohup 啟動的進程會繼承當前用戶的環境變量,但某些環境變量可能不會傳遞。通過以上步驟,你可以利用 nohup 命令實現 Linux 進程的持久化,確保在關閉終端或注銷后進程仍然繼續運行。