在Linux中,nohup
命令和&
符號都用于在后臺運行程序,但它們的工作方式和用途有所不同。
nohup
命令:
nohup
是"No Hang Up"的縮寫,它的作用是在用戶退出登錄后繼續運行指定的程序。當你使用nohup
命令啟動一個程序時,該程序會忽略所有的掛起(SIGHUP)信號,這樣即使你關閉了終端或者斷開了SSH連接,程序也會繼續運行。nohup
通常與輸出重定向結合使用,將程序的輸出保存到文件中,因為默認情況下,nohup
會將輸出發送到名為nohup.out
的文件。例如:
nohup my_command > output.log 2>&1 &
這條命令會在后臺運行my_command
,并將標準輸出和標準錯誤都重定向到output.log
文件中。
&
符號:
&
符號用于將程序放入后臺運行。當你在命令的末尾加上&
符號時,程序會在后臺執行,而不會占用當前的終端。這意味著你可以繼續在終端中執行其他命令,而不必等待后臺程序完成。然而,如果關閉終端或者斷開SSH連接,后臺運行的程序通常會被終止。例如:
my_command &
這條命令會將my_command
放入后臺運行,但是如果你退出登錄,程序可能會被終止。
總結:
nohup
用于在用戶退出登錄后繼續運行程序,并且忽略掛起信號。&
用于將程序放入后臺運行,但不會阻止程序在終端關閉時被終止。nohup
和&
,并且重定向輸出到文件。