LINUX守護程序

2022-09-17 15:39:15 字數 1424 閱讀 7122

守護程序(deamon)就是一直在後台執行的程序(daemon)

前台任務(foreground job)

後台任務(background job)

fg 將後台中的命令調至前台繼續執行

bg 將乙個在後台暫停的命令,變程繼續執行(在後台執行)

ctrl+z 講乙個正在前台執行的命令放到後台,並且處於暫停轉台,布林執行

linux啟動後台任務

在要啟動的程式後面加上&,這樣啟動的程式就會變成"後台任務"

python elk.py &

後台任務特點

1.繼承當前session(對話)的標準輸出(stdout)和標準錯誤(stderr),因此後台任務所有輸出依然會同步地在命令下顯示

2.不在繼承當前session的標準輸入(stdin)。你無法向這個任務輸入指令了。如果它檢視讀取標準輸入,就會暫停執行(halt)

正常前台程式退出

1.使用者準備推出session

2.系統向該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 &disown

disown用法

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關閉所有的檔案...