示例 :
我們用python**loop_hello.py做示例,**的作用是迴圈輸出迴圈次數和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()
執行loop_hello.py,輸出結果如下:
程式每隔一秒會在終端輸出乙個字串,此時如果鍵入ctrl+c ,程式會收到乙個sigint訊號,如果不做特殊處理,程式的預設行為是終止(如上圖)。
&
使用 python loop_hello.py &,效果如下所示:
1) 前台沒有出現程序號
2) 有乙個「忽略輸入並把輸出追加到"nohup.out"」的提示
3) hello的輸出也沒有出現在前台
1) 使用ps aux | grep loop_hello檢視程序號
2) 關掉session,程式會收到乙個sighup訊號
3) 再次使用ps aux | grep loop_hello,發現程序仍然存在
4) kill掉程序
1) 使用nohup啟動loop_hello.py,如果鍵入ctrl+c ,程式收到sigint訊號後,直接關閉了
&和nohup同時使用
1. 使用nohup python loop_hello.py &執行程式,效果如下:
2. 鍵入ctrl + c,傳送sigint訊號 使用ps aux檢視,程序仍然存在
3. 關閉session,傳送sighup訊號 使用ps aux檢視,程序依然存在
4. 如果想要終止程序的話,只能使用ps和kill了
總結 :
使用&後台執行程式:
使用nohup執行程式:
平日線上經常使用nohup和&配合來啟動程式:
Linux 系統 nohup 命令詳解
nohup nohup 命令執行由 command引數和任何相關的 arg引數指定的命令,忽略所有結束通話 sighup 訊號。在登出後使用 nohup 命令執行後台中的程式。要執行後台中的 nohup 命令,新增 表示 and 的符號 到命令的尾部。nohup 是 no hang up 的縮寫,就...
Linux學習之nohup命令詳解
在實際生產環境中,平時常常因為實際需求,要在後台掛起乙個指令碼或者是程序,如果是掛起程序還可以使用 xinetd 服務來進行守護程序,但是如果只是需要在後台掛起乙個指令碼的話,使用 xinetd 服務就有點不太合適了,還好 linux系統 中有提供乙個很好的不結束通話地執行命令 nohup 我們使用...
原創 Linux 中的 nohup 與
目錄測試 一直沒搞清楚nohup與 的區別,看著公司裡遺留的shell,也就稀里糊塗地用著.這是很糟糕的態度 使程序在後台執行,預設輸出到標準輸出 即當前螢幕 除非重定向輸出.此時忽略 sigint 訊號.若關閉會話,則程序會結束 程序仍舊在前台跑,預設輸出到nohup.out.此時程序忽略 sig...