Linux中nohup與&的用法和區(qū)別詳解
示例 :
我們用python代碼loop_hello.py做示例,代碼的作用是循環(huán)輸出循環(huán)次數(shù)和hello world!,每次輸出后sleep 1秒
示例代碼如下:
import time def main(): i = 0 while True: i += 1 print('%d: hello world!' %(i)) time.sleep(1) if '__main__' == __name__: main()
運行l(wèi)oop_hello.py,輸出結(jié)果如下:
程序每隔一秒會在終端輸出一個字符串,此時如果鍵入Ctrl+C ,程序會收到一個SIGINT信號,如果不做特殊處理,程序的默認行為是終止(如上圖)。
&
使用 python loop_hello.py &,效果如下所示:
首先會在終端顯示進程號是2367
鍵入Ctrl + C,發(fā)出SIGINT信號,程序會繼續(xù)運行
關(guān)掉session,程序會收到一個SIGHUP信號,通過ps aux | grep loop_hello.py可以看到,進程2367也關(guān)閉了
nohup
使用nohup python loop_hello.py,效果如下:
- 前臺沒有出現(xiàn)進程號
- 有一個“忽略輸入并把輸出追加到"nohup.out"”的提示
- hello的輸出也沒有出現(xiàn)在前臺
如果關(guān)掉session,程序會不會關(guān)閉呢?
- 使用ps aux | grep loop_hello查看進程號
- 關(guān)掉session,程序會收到一個SIGHUP信號
- 再次使用ps aux | grep loop_hello,發(fā)現(xiàn)進程仍然存在
- kill掉進程
測試一下Ctrl +C
使用nohup啟動loop_hello.py,如果鍵入Ctrl+C ,程序收到SIGINT信號后,直接關(guān)閉了
&和nohup同時使用
使用nohup python loop_hello.py &運行程序,效果如下:
鍵入Ctrl + C,發(fā)送SIGINT信號 使用ps aux查看,進程仍然存在
關(guān)閉session,發(fā)送SIGHUP信號 使用ps aux查看,進程依然存在
如果想要終止進程的話,只能使用kill了
總結(jié) :
使用&后臺運行程序:
- 結(jié)果會輸出到終端
- 使用Ctrl + C發(fā)送SIGINT信號,程序免疫
- 關(guān)閉session發(fā)送SIGHUP信號,程序關(guān)閉
使用nohup運行程序:
- 結(jié)果默認會輸出到nohup.out
- 使用Ctrl + C發(fā)送SIGINT信號,程序關(guān)閉
- 關(guān)閉session發(fā)送SIGHUP信號,程序免疫
平日線上經(jīng)常使用nohup和&配合來啟動程序:
- 同時免疫SIGINT和SIGHUP信號
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對我們的支持。
欄 目:Linux/apache
下一篇:CentOS7系統(tǒng)增加swap的操作方法實例
本文標題:Linux中nohup與&的用法和區(qū)別詳解
本文地址:http://mengdiqiu.com.cn/a1/Linux_apache/10765.html
您可能感興趣的文章
- 04-02linux關(guān)閉串口命令 關(guān)閉linux端口命令
- 04-02linux文件命令重命名 linux重命名文件名命令
- 04-02linux命令注入過濾 linux 代碼注入
- 04-02linux中jobs命令 shell jobs命令
- 04-02linux依次執(zhí)行命令 linux命令的執(zhí)行過程是怎樣的?新手必讀
- 04-02linux命令免輸入 linux配置免密登錄
- 04-02linux命令注銷vnc linux命令行注銷用戶
- 04-02軟交換linux命令 軟交換網(wǎng)絡(luò)主要協(xié)議有哪些
- 04-02linux命令歷史記錄 linux查看歷史記錄的操作命令
- 04-02linux命令頁面 linux命令頁面中文


閱讀排行
本欄相關(guān)
- 04-02linux關(guān)閉串口命令 關(guān)閉linux端口命令
- 04-02linux文件命令重命名 linux重命名文件名
- 04-02linux中jobs命令 shell jobs命令
- 04-02linux命令注入過濾 linux 代碼注入
- 04-02linux依次執(zhí)行命令 linux命令的執(zhí)行過程
- 04-02linux命令注銷vnc linux命令行注銷用戶
- 04-02linux命令免輸入 linux配置免密登錄
- 04-02軟交換linux命令 軟交換網(wǎng)絡(luò)主要協(xié)議
- 04-02linux命令歷史記錄 linux查看歷史記錄的
- 04-02linux命令頁面 linux命令頁面中文
隨機閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實例總結(jié)
- 08-05織夢dedecms什么時候用欄目交叉功能?