nohup(no hang-up)命令在 Debian 系統中用于在后臺運行程序,即使關閉終端或斷開連接,程序也會繼續運行。以下是一些使用 nohup 命令的技巧:
運行單個命令:
nohup command &
例如:
nohup sleep 3600 &
重定向輸出:
默認情況下,nohup 會將輸出重定向到 nohup.out 文件。你可以自定義輸出文件:
nohup command > output.log 2>&1 &
這里,> 將標準輸出重定向到 output.log,2>&1 將標準錯誤重定向到標準輸出(即 output.log)。
后臺運行多個命令:
可以使用 & 將多個命令放在同一行中,并用分號分隔:
nohup (command1 & command2 & command3) > output.log 2>&1 &
使用 setsid:
setsid 命令可以創建一個新的會話,確保進程在斷開連接后仍然運行:
nohup setsid command > output.log 2>&1 &
使用 screen 或 tmux:
這些終端復用工具提供了更強大的后臺管理功能:
screen -dmS session_name command
tmux new -d -s session_name command
監控進程:
使用 ps 命令監控后臺進程:
ps aux | grep command
終止后臺進程:
使用 kill 命令終止后臺進程:
kill -9 PID
其中 PID 是進程的進程ID。
假設你想在后臺運行一個長時間運行的 Python 腳本,并且希望輸出到 my_script.log 文件:
nohup python my_script.py > my_script.log 2>&1 &
如果你希望在后臺運行多個命令,并且希望所有輸出都記錄到同一個日志文件中:
nohup (command1 & command2 & command3) > combined_output.log 2>&1 &
通過這些技巧,你可以更有效地使用 nohup 命令來管理后臺進程。