nohup(no hang-up)命令在 CentOS 系統中用于在后臺運行程序,即使關閉終端或斷開連接,程序也會繼續運行。以下是 nohup 命令的基本用法:
nohup command [arguments] &
command:要運行的命令。[arguments]:傳遞給命令的參數。&:將命令放入后臺運行。假設你想在后臺運行一個名為 my_script.sh 的腳本,并且希望即使關閉終端,腳本也會繼續運行。
直接使用 nohup 命令
nohup ./my_script.sh &
將輸出重定向到文件
默認情況下,nohup 會將標準輸出和標準錯誤輸出重定向到一個名為 nohup.out 的文件中。如果你想指定輸出文件,可以使用重定向操作符 > 和 2>。
將標準輸出重定向到 output.log,標準錯誤輸出重定向到 error.log
nohup ./my_script.sh > output.log 2> error.log &
只將標準輸出重定向到 output.log,標準錯誤輸出仍然輸出到終端
nohup ./my_script.sh > output.log 2>&1 &
你可以使用 ps 命令來查看后臺運行的進程。
ps aux | grep my_script.sh
如果你需要終止后臺運行的進程,可以使用 kill 命令。
查找進程ID
ps aux | grep my_script.sh
終止進程
kill -9 <PID>
其中 <PID> 是進程ID。
nohup 命令會忽略掛起信號(SIGHUP),因此即使關閉終端,進程也會繼續運行。nohup 命令時,建議將輸出重定向到文件,以避免輸出到終端導致混亂。systemd 服務單元文件來實現。通過以上步驟,你可以在 CentOS 系統中使用 nohup 命令在后臺運行程序,并確保程序在關閉終端后仍然繼續運行。