場景分析:
如何不間斷的以後臺程序來執行某個程序呢?
給個示例指令碼如下:
指令碼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 或...