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