在 linux 中,nohup 命令和 & 符號都用于在后臺運行程序,但它們的功能和使用方式有所不同。
nohup 命令
nohup 是 “no hang up” 的縮寫,旨在讓進程忽略掛起(SIGHUP)信號。通常,當用戶退出登錄或關閉終端時,所有在該終端下啟動的進程都會收到 SIGHUP 信號并終止。使用 nohup 可以使進程在用戶退出登錄后繼續運行。
基本用法如下:
nohup command &
這里的 command 是你希望在后臺運行的命令。& 符號用于將命令放入后臺運行,而 nohup 確保即使終端關閉,命令也會繼續運行。
nohup 還會默認將命令的輸出重定向到一個名為 nohup.out 的文件中,除非指定了其他輸出文件。
& 符號
& 符號用于將命令放入后臺運行。當你在命令的末尾加上 &,shell 不會等待該命令執行完畢,而是立即返回并允許用戶繼續輸入其他命令。
例如:
command &
這會讓 command 在后臺運行,但不會忽略 SIGHUP 信號。如果用戶退出登錄或關閉終端,該命令通常會被終止。
結合使用
通常,你會看到 nohup 和 & 一起使用,以確保命令在后臺運行并且不受終端關閉的影響:
nohup command &
這樣,即使用戶退出登錄或關閉終端,command 也會繼續運行,并且輸出會被重定向到 nohup.out 文件中。
總結
- nohup:用于忽略掛起信號,使進程在用戶退出登錄后繼續運行。
- &:用于將命令放入后臺運行,但不提供對掛起信號的防護。
- nohup &:結合了兩者的功能,使命令在后臺運行且不受終端關閉的影響。
希望這些解釋能幫助你理解 nohup 命令和 & 符號在 Linux 中的不同用途。