Linux nohup命令分析

2021-08-07 14:23:06 字數 1385 閱讀 5085

場景分析:

如何不間斷的以後臺程序來執行某個程序呢?

給個示例指令碼如下:

指令碼tim.sh:

#!/bin/bash

while [ 1 -le 2 ]

do echo 'hello'>/dev/null

done

這個shell 指令碼會不斷的將『hello』字串的值丟入/dev/null中,保證當前的程序不斷的執行。

執行指令碼:

/bin/bash tim.sh
效果如下:

開啟另乙個shell,執行:ps –ef|grep tim.sh,可以檢視到當前的tim.sh程序正在執行:

但是,第乙個/bin/bash tim.sh,執行ctr+c或者退出當前視窗,該tim.sh消失。

新增&執行指令碼:

/bin/bash tim.sh &
當前的程序直接在後台執行,控制台上輸出程序號,此時如果執行logout命令,則該程序仍然可以在後台執行,但是,如果強制關閉xshell客戶端,則結束該會話會傳送signup訊號會關閉該程序。

除了新增&還要新增nohup執行指令碼:

此時,之前控制台的輸出結果會被重定向到當前目錄下的nohup.out檔案(注意:如果使用者不具備當前目錄可寫的許可權,那麼nohup.out將輸出到使用者的home目錄下,比如,root使用者為/root/下)。並且,即時強制關閉xshell終端或者網路斷開,該tim.sh程序仍然可以執行。

區分:&和nohup

&指的是將程序放在後台執行,nohup是不間斷的執行某個程序。因此,兩者沒有交集。

因為普通的程式並不能真正脫離登入會話而執行程序,為了使得系統登入後還可以正常執行,只有使用命令nohup來啟動相應程式。

輸入man nohup給出的解釋如下:

nohup

name:

nohup – run a command immune tohangups, with output to a non-tty.

就是指,用nohup執行命令可以使命令永久的執行下午,和使用者終端沒有關係。(例如:我們斷開ssh連線也不會影響它的執行)

注意:nohup沒有後台執行的意思,&才是後台執行。

linux nohup命令詳解

linux nohup命令詳解 nohup命令及其輸出檔案 nohup命令 如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶 關閉終端之後繼續執行相應的程序。nohup就是不掛起的意思 n ohang up 一般都是在linux下no...

linux nohup命令詳解

linux nohup命令詳解 nohup命令及其輸出檔案 nohup命令 如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用nohup命令。該命令可以在你退出帳戶 關閉終端之後繼續執行相應的程序。nohup就是不掛起的意思 n ohang up 一般都是在linux下no...

linux nohup 命令詳解

nohup命令及其輸出檔案 nohup命令 如果你正在執行乙個程序,而且希望退出賬戶時該程序不會結束,那麼可以使用nohup命令。該命令可以在你退出賬戶 關閉終端之後繼續執行相應的程序。nohup就是不掛起的意思 no hang up 一般在linux下nohup格式 nohup command 或...