nohup
(no hang-up)命令用于在Linux和Unix系統中運行命令,使其在用戶退出登錄后繼續運行。在使用nohup
命令時,需要注意以下幾點:
輸出重定向:nohup
命令默認會將標準輸出和標準錯誤輸出重定向到名為nohup.out
的文件中。如果需要將輸出重定向到其他文件,可以使用>
或>>
操作符。例如:
nohup command > output.log 2>&1 &
這將把標準輸出和標準錯誤輸出都重定向到output.log
文件中。
在命令末尾添加&
:為了讓命令在后臺運行,需要在命令末尾添加&
符號。這樣,即使關閉終端或斷開連接,命令也會繼續運行。
忽略掛起信號:nohup
命令的作用之一是忽略掛起(SIGHUP)信號。這意味著,當用戶退出登錄或關閉終端時,命令不會收到掛起信號,從而繼續運行。
使用disown
命令:如果你已經啟動了一個命令,但忘記在命令前加上nohup
,你可以使用disown
命令將其從當前shell會話中分離,使其在退出登錄后繼續運行。例如:
command &
disown
查看進程:要查看使用nohup
運行的進程,可以使用ps
命令。例如,要查找名為my_command
的進程,可以運行:
ps -ef | grep my_command
終止進程:要終止使用nohup
運行的進程,可以使用kill
命令。首先,使用ps
命令找到進程ID(PID),然后運行:
kill PID
如果進程無法正常終止,可以使用kill -9
強制終止。
總之,在使用nohup
命令時,確保正確地重定向輸出、在命令末尾添加&
符號,并了解如何查看和終止進程。這將有助于確保命令在后臺穩定運行。