nohup
(no hang-up)命令在 Linux 中用于在用戶退出登錄后繼續運行指定的程序或腳本。以下是一些使用 nohup
命令的技巧:
nohup command &
command
:要運行的命令或腳本。&
:將命令放入后臺運行。默認情況下,nohup
會將輸出重定向到當前目錄下的 nohup.out
文件。你可以自定義輸出文件:
nohup command > output.log 2>&1 &
>
:將標準輸出重定向到指定文件。2>&1
:將標準錯誤輸出重定向到標準輸出。&
:將命令放入后臺運行。nohup
命令會忽略掛起信號(SIGHUP),這樣即使用戶退出登錄,程序也會繼續運行。
&
后臺運行如果你不希望將輸出重定向到文件,只想在后臺運行,可以省略輸出重定向部分:
nohup command &
你可以使用 ps
命令查看后臺運行的進程:
ps aux | grep command
如果你需要終止后臺運行的進程,可以使用 kill
命令:
kill -9 <PID>
<PID>
:進程的進程ID。nohup
運行腳本你可以使用 nohup
運行腳本文件:
nohup ./script.sh &
如果程序產生大量輸出,可能會導致 nohup.out
文件迅速增長。你可以定期清理或壓縮該文件:
# 定期清理 nohup.out 文件
find /path/to/logs -name "nohup.out" -type f -mtime +7 -exec rm {} \;
# 壓縮 nohup.out 文件
gzip nohup.out
nohup
和 screen
或 tmux
為了更好地管理后臺進程,你可以結合使用 nohup
和終端復用工具如 screen
或 tmux
:
# 啟動 screen 會話
screen -S mysession
# 在 screen 會話中運行命令
nohup command &
# 分離 screen 會話
Ctrl+A D
# 重新連接到 screen 會話
screen -r mysession
通過這些技巧,你可以更有效地使用 nohup
命令來確保你的程序在用戶退出登錄后繼續運行。