nohup
(no hang-up)命令在Linux中用于在用戶退出登錄后繼續運行指定的命令或腳本。以下是一些使用nohup
的最佳實踐:
nohup command &
command
:要運行的命令或腳本。&
:將命令放入后臺運行。默認情況下,nohup
會將輸出重定向到當前目錄下的nohup.out
文件。為了避免覆蓋已有文件,可以使用>
來指定輸出文件:
nohup command > output.log 2>&1 &
output.log
:指定的輸出文件。2>&1
:將標準錯誤輸出重定向到標準輸出。&
符號確保命令在后臺運行,否則即使使用了nohup
,終端關閉時命令也會終止。
可以使用ps
命令檢查進程是否在運行:
ps aux | grep command
如果需要停止進程,可以使用kill
命令:
kill -9 PID
PID
:進程ID。nohup
運行腳本如果你有一個腳本文件,可以直接使用nohup
來運行:
nohup ./script.sh > output.log 2>&1 &
nohup
運行交互式命令nohup
主要用于非交互式命令,因為它會忽略掛起信號(SIGHUP)。如果需要運行交互式命令,可以考慮使用screen
或tmux
等工具。
定期檢查output.log
文件,確保命令正常運行并處理任何錯誤。
nohup
結合cron
如果你需要定期運行某個命令,可以結合cron
任務來實現:
crontab -e
添加一行:
0 * * * * nohup /path/to/command > /path/to/output.log 2>&1 &
這會在每小時的第0分鐘運行一次命令。
確保你有足夠的權限來運行命令和寫入日志文件。
通過遵循這些最佳實踐,你可以更有效地使用nohup
命令來確保你的命令在用戶退出登錄后繼續運行。