守護程序(deamon)就是一直在後台執行的程序(daemon)
前台任務(foreground job)
後台任務(background job)
fg 將後台中的命令調至前台繼續執行bg 將乙個在後台暫停的命令,變程繼續執行(在後台執行)
ctrl+z 講乙個正在前台執行的命令放到後台,並且處於暫停轉台,布林執行
linux啟動後台任務
在要啟動的程式後面加上&,這樣啟動的程式就會變成"後台任務"
python elk.py &
後台任務特點
1.繼承當前session(對話)的標準輸出(stdout)和標準錯誤(stderr),因此後台任務所有輸出依然會同步地在命令下顯示
2.不在繼承當前session的標準輸入(stdin)。你無法向這個任務輸入指令了。如果它檢視讀取標準輸入,就會暫停執行(halt)
正常前台程式退出
1.使用者準備推出session2.系統向該session發出sighup訊號
3.session將sighup訊號發給所有子程序
4.子程序收到sighup訊號後,自動退出
可以檢視shell的huponexit引數
shopt |grep huponexit
預設是off關閉的 所以session退出的時候不會把sighup訊號發給 後台任務 所以 一般後台任務不會隨著session一起退出。
如果系統的huponexit引數是開啟的on 可以使用disown這個命令 他可以將制定任務從 後台任務列表(jobs命令的返回結果)之中移出 乙個後台任務只要不在這個列表中,session就不會向它發出sighup訊號
執行之後elk.py程序就被移出後台任務列表了,jobs輸出結果裡不會有這個程序
python elk.py &disowndisown用法
disown //移出最近乙個正在執行的後台任務
disown -r//移出所有正在執行的後台任務
disown -a //移出所有後台任務
disown -h //不移出後台,但是讓它們不會接收到sighup訊號
//根據jobid,移出指定的後台任務
disown %2disown -h %2
使用disown命令 退出session 如果後台程序與表準i/o有互動會掛掉
nohup命令nohup python elk.py &nohup功能
1.阻止sighup訊號傳送到這個程序
2.關閉標準輸入,該程序不再能夠接收任何輸入,即使執行在前台
3.重定向標準輸出和標準錯誤到檔案nohup.out這個命令將子程序與它的session分離了
參考學習:
Linux守護程序
linux下守護程序一般分為5步,但是實際上只有前兩步是關鍵。第一步 建立子程序,關閉父程序。使用fork 建立,父程序exit 退出。關鍵第二步 建立新的會話id,setsid 作用是使子程序擺脫原有的會話 程序組 終端的控制,其實,linux下每個程序都是由一號程序建立而來的,每個程序都是1號程...
Linux 守護程序
守護程序daemon,是生存期較長的一種程序,名字一般以字母d結尾。它們常常在系統自舉時啟動,僅在系統關閉時才終止。因為它們沒有控制終端,所以說它們是在後台執行的。linux系統有很多守護程序,它們執行日常事務活動。自舉只有兩個功能 加電自檢和磁碟引導。加電自檢 當我們按下計算機電源開關時,頭幾秒鐘...
Linux守護程序
程式設計級別 一 守護程序的概念 守護程序是一種生存期比較長的程序,常常在系統自舉時啟動,在系統關閉時退出。因為他們沒有控制終端,因此是在後台執行的。二 守護程序的程式設計規則 1清除檔案模式建立遮蔽字 2成為乙個新的會話首程序 3略hup訊號。然後再次fork 4改變當前工作路徑 5關閉所有的檔案...