為什麼我們在 Linux 中使用 Nohup 命令?

Nohup 是 no hang up 的縮寫,是 Linux 系統中的一個命令,即使在退出 shell 或終端后也能保持進程運行。 Nohup 阻止進程或作業接收 SIGHUP(信號掛斷)信號。 這是在關閉或退出終端時發送到進程的信號。

Linux中nohup命令有什麼用?

nohup 代表 no hang-up,它是一個 Linux 實用程序 即使在退出終端或 shell 後仍保持進程運行. 它阻止進程獲取 SIGHUP 信號(信號掛斷); 這些信號被發送到進程以終止或結束進程。

為什麼我們需要 nohup?

例如,在遠程主機上運行大型數據導入時,您可能希望使用 nohup 確保斷開連接不會讓您在重新連接時重新開始. 當開發人員沒有正確地守護服務時也會使用它,因此您必須使用 nohup 以確保在您註銷時它不會被殺死。

如何運行 nohup 命令?

要在後台運行 nohup 命令, 在命令末尾添加一個 &(和號). 如果標準錯誤顯示在終端上,並且標準輸出既不顯示在終端上,也不發送到用戶指定的輸出文件(默認輸出文件為 nohup.out),兩者都是 ./nohup.

如何在 Linux 中運行 nohup 腳本?

nohup 命令語法:

command-name :是 shell 腳本的名稱或命令名稱。 您可以將參數傳遞給命令或 shell 腳本。 & : nohup 不會自動將其運行的命令置於後台; 你必須明確地這樣做,通過 以 & 符號結束命令行.

nohup 和 & 有什麼區別?

nohup 捕捉掛斷信號 (請參閱 man 7 信號)而與號沒有(除了外殼以這種方式配置或根本不發送 SIGHUP )。 通常,當使用 & 運行命令並隨後退出 shell 時,shell 將使用掛斷信號終止子命令( kill -SIGHUP )。

為什麼 nohup 不起作用?

回复:nohup 不工作

shell 可能在禁用作業控制的情況下運行. ... 除非您運行的是受限 shell,否則用戶應該可以更改此設置。 運行“stty -a |grep tostop”。 如果設置了“tostop” TTY 選項,任何後台作業都會在它嘗試向終端生成任何輸出時立即停止。

為什麼 nohup 忽略輸入?

nohup 是 告訴你它在做什麼,它正在忽略 輸入。 “如果標準輸入是終端,請從不可讀的文件中重定向它。” 儘管有 OPTION 條目,但它正在做它應該做的事情,這就是丟棄輸入的原因。

我如何知道作業是否在 nohup 中運行?

1答案

  1. 您需要知道要查看的進程的 pid。 您可以使用 pgrep 或 jobs -l : jobs -l [1]- 3730 Running sleep 1000 & [2]+ 3734 Running nohup sleep 1000 & …
  2. 看看/proc/ /fd 。

你如何使用拒絕?

disown 命令是一個內置命令,可與 bash 和 zsh 等 shell 一起使用。 要使用它,您 鍵入“disown”,後跟進程 ID (PID) 或您要拒絕的進程.

如何重定向 nohup 輸出?

將輸出重定向到文件

默認情況下, nohup 重定向 命令輸出到 nohup。 出文件。 如果要將輸出重定向到不同的文件,請使用標準 shell 重定向。

什麼是 .nohup 文件?

nohup 是 一個 POSIX 命令,意思是“不掛斷”. 其目的是執行一個命令,使其忽略 HUP(掛起)信號,因此在用戶註銷時不會停止。 通常會發送到終端的輸出會發送到一個名為 nohup 的文件。

喜歡這篇文章嗎? 請分享給您的朋友:
今日操作系統