nohup是一個UNIX和Linux命令,用于在你退出shell之后繼續運行指定的命令。nohup的名字來源于”no hang up”,表示即使你斷開了連接,命令仍然會運行。
當使用nohup運行命令時,命令的輸出默認會被追加到一個名為nohup.out的文件中,除非你明確指定了其他的輸出文件。
要使用nohup來啟動一個shell腳本(例如script.sh),你可以這樣操作:
nohup ./script.sh &
這里的&是將命令放到后臺運行。
如果你想把輸出重定向到其他文件,例如output.log,可以這樣做:
nohup ./script.sh > output.log 2>&1 &
這個命令會將標準輸出和標準錯誤都重定向到output.log。
注意:當你使用nohup啟動了一個后臺進程后,該進程的父進程會成為init進程(進程 ID 為 1),這意味著即使你退出了shell,進程仍然會繼續運行。使用jobs命令不會顯示使用nohup啟動的后臺進程,因為這些進程已經與當前shell脫鉤。要查看使用nohup啟動的進程,可以使用ps或者top命令。要結束這些進程,可以使用kill命令。