1.概述
nohup
在工作中,我們很經(jīng)常跑一個很重要的程序,有時候這個程序需要跑好幾個小時思喊,甚至需要幾天,這個時候如果我們退出終端次酌,或者網(wǎng)絡不好連接中斷恨课,那么程序就會被中止。而這個情況肯定不是我們想看到的岳服,我們希望即使終端關閉剂公,程序依然可以在跑。
這時我們就可以使用 nohup 這個命令吊宋。
nohup 命令是英語詞組no hangup 的縮寫纲辽,意思是不掛斷,也就是指程序不退出。這個命令會使程序忽略 HUP 信號文兑,保證程序能夠正常進行盒刚。HUP 信號有些人可能比較陌生,它是在終端被中止的時候向它所關聯(lián)的進程所發(fā)出的信號绿贞,進程收到這個信號后就會中止運行因块。所以如果你不希望進程被這個信號干掉的話,就可以忽略這個信號籍铁。而 nohup 命令做的就是這個事情涡上。
&
用途:在后臺運行
一般兩個一起用
nohup command &
注意
&的意思是在后臺運行, 什么意思呢拒名? 意思是說吩愧, 當你在執(zhí)行 path& 的時候, 即使你用ctrl C, 那么a.out照樣運行(因為對SIGINT信號免疫)增显。但是要注意雁佳, 如果你直接關掉shell后, 那么同云, a.out進程同樣消失糖权。 可見, &的后臺并不硬(因為對SIGHUP信號不免疫)炸站。
nohup的意思是忽略SIGHUP信號星澳, 什么意思呢?當運行nohup patht的時候旱易, 關閉shell, 那么path進程還是存在的(對SIGHUP信號免疫)禁偎。 但是, 要注意阀坏, 如果你直接在shell中用Ctrl+C, 那么, path進程也是會消失的(因為對SIGINT信號不免疫)