久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      什么是linux守護(hù)進(jìn)程

      在linux中,守護(hù)進(jìn)程也稱“精靈進(jìn)程”,是一個在后臺運(yùn)行且不受任何終端控制的特殊進(jìn)程,用于執(zhí)行特定的系統(tǒng)任務(wù)。守護(hù)進(jìn)程獨立于控制終端并且周期性的執(zhí)行某種發(fā)生的事件。

      什么是linux守護(hù)進(jìn)程

      本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。

      守護(hù)進(jìn)程的定義

      守護(hù)進(jìn)程也稱為精靈進(jìn)程(Daemon),是一個在后臺運(yùn)行且不受任何終端控制的特殊進(jìn)程,用于執(zhí)行特定的系統(tǒng)任務(wù)。很多守護(hù)進(jìn)程在系統(tǒng)引導(dǎo)的時候啟動,并且一直運(yùn)行直到系統(tǒng)關(guān)閉。另一些只在需要的時候才啟動,完成任務(wù)后就自動結(jié)束。

      它獨立于控制終端并且周期性的執(zhí)行某種發(fā)生的事件。守護(hù)進(jìn)程是一種很有用的進(jìn)程。Linux的大多數(shù)服務(wù)器就是用守護(hù)進(jìn)程實現(xiàn)的。

      Linux系統(tǒng)啟動時會啟動很多系統(tǒng)服務(wù)進(jìn)程,這些系統(tǒng)服務(wù)進(jìn)程沒有控制終端,不能直接和用戶交互。其他進(jìn)程都是在用戶登錄或運(yùn)行程序時創(chuàng)建,在運(yùn)行結(jié)束或用戶注銷時終止,但系統(tǒng)服務(wù)進(jìn)程(守護(hù)進(jìn)程)不受用戶登錄注銷的影響,它們一直在運(yùn)行著。這種進(jìn)程有一個名稱叫守護(hù)進(jìn)程(Daemon)。

      下面?zhèn)冇胮s axj命令查看系統(tǒng)中的進(jìn)程。參數(shù)a 表示不僅列出當(dāng)前用戶的進(jìn)程,也列出所有其他用戶的進(jìn)程; 參數(shù)x 表示不僅列出有控制終端的進(jìn)程,也列出所有無控制終端的進(jìn)程;參數(shù)j 表示列出與作業(yè)控制相關(guān)的信息。

      什么是linux守護(hù)進(jìn)程

      (1)凡是TPGID一欄寫著-1的都是沒有控制終端的進(jìn)程,也就是守護(hù)進(jìn)程;

      (2)在COMMAND一列用[ ]括起來的名字表示內(nèi)核線程,這些線程在內(nèi)核里創(chuàng)建,沒有用戶空間代碼,因此沒有程序文件名和命令行,通常采用以k開頭的名字,表示Kernel;

      (3)init進(jìn)程我們已經(jīng)很熟悉了,udevd負(fù)責(zé)維護(hù)/dev目錄下的設(shè)備文件,acpid負(fù)責(zé)電源管理,syslogd負(fù)責(zé)維護(hù)/var/log下的日志文件;

      (4)可以看出,守護(hù)進(jìn)程通常采用以d結(jié)尾的名字,表示Daemon。

      守護(hù)進(jìn)程的特點

      (1)在Linux中,每個系統(tǒng)與用戶進(jìn)行交流的界面成為終端,每一個從此終端開始運(yùn)行的進(jìn)程都會依附于這個終端,這個終端被稱為這些進(jìn)程的控制終端;

      (2)當(dāng)控制終端被關(guān)閉的時候,相應(yīng)的進(jìn)程都會自動關(guān)閉。但是守護(hù)進(jìn)程卻能突破這種限制,它脫離于終端并且在后臺運(yùn)行,(脫離終端的目的是為了避免進(jìn)程在運(yùn)行的過程中的信息在任何終端中顯示并且進(jìn)程也不會被任何終端所產(chǎn)生的終端信息所打斷),它從被執(zhí)行的時候開始運(yùn)轉(zhuǎn),直到整個系統(tǒng)關(guān)閉才退出(當(dāng)然可以認(rèn)為是殺死相應(yīng)的守護(hù)進(jìn)程);

      (3)如果想讓某個進(jìn)程不因為用戶或中斷或其他變化而影響,那么就必須把這個進(jìn)程變成一個守護(hù)進(jìn)程。

      進(jìn)程,進(jìn)程組,會話,控制終端之間的關(guān)系

      因為守護(hù)進(jìn)程的創(chuàng)建需要改變這些環(huán)境參數(shù),所以了解它們之間的關(guān)系很重要:

      什么是linux守護(hù)進(jìn)程

      • 進(jìn)程組:它是由一個或多個進(jìn)程組成,進(jìn)程組號(GID)就是這些進(jìn)程中的進(jìn)程組長的PID。

      • 會話:其實叫做會話期(session),它包括了期間所有的進(jìn)程組,一般一個會話期開始于用戶login,一般login的是shell終端,所以shell終端又是此次會話期的首進(jìn)程,會話一般結(jié)束于logout。對于非進(jìn)程組長,它可以調(diào)用setsid()創(chuàng)建一個新的會話。

      • 控制終端(tty):一般就是指shell終端,它在會話期中可有也可以沒有。

      創(chuàng)建守護(hù)進(jìn)程

      創(chuàng)建守護(hù)進(jìn)程最關(guān)鍵的一步是調(diào)用setsid函數(shù)創(chuàng)建一個新的Session Leader。

      #includepid_t setid(void);//該函數(shù)調(diào)用成功時返回新創(chuàng)建的Session的id(其實也就是當(dāng)前進(jìn)程的id),出錯返回-1。

      注意,調(diào)用這個函數(shù)之前,當(dāng)前進(jìn)程不允許是進(jìn)程組的Leader,否則該函數(shù)返回-1。要保證當(dāng)前進(jìn)程不是進(jìn)程組的Leader也很容易,只要先fork再調(diào)用setsid就行了。fork創(chuàng)建的子進(jìn)程和父進(jìn)程在同一個進(jìn)程組中,進(jìn)程組的Leader必然是該組的第一個進(jìn)程,所以子進(jìn)程不可能是該組的第一個進(jìn)程,在子進(jìn)程中調(diào)用setsid就不會有問題了。

      成功調(diào)用該函數(shù)的結(jié)果是:

      (1)創(chuàng)建一個新的Session,當(dāng)前進(jìn)程為Session Leader,當(dāng)前進(jìn)程的id就是Session的id;

      (2)創(chuàng)建一個新的進(jìn)程組,當(dāng)前進(jìn)程為進(jìn)程組的Leader,當(dāng)前進(jìn)程的id就是進(jìn)程組的id;

      (3)如果當(dāng)前進(jìn)程原本有一個控制終端,則它失去這個終端,成為一個沒有控制終端的進(jìn)程。(所謂失去控制終端指的是,原來的控制終端仍然是打開的,仍然可以讀寫,但只是一個普通的打開文件,而不是控制終端了)。

      如何殺死守護(hù)進(jìn)程

      1.首先ps axj | grep 守護(hù)進(jìn)程名字,找到相應(yīng)的守護(hù)進(jìn)程,然后使用kill -9 守護(hù)進(jìn)程名殺掉;

      2.利用ps -ef命令查找相應(yīng)的守護(hù)進(jìn)程,再用kill -9命令將其殺死;

      3.創(chuàng)建shell腳本對進(jìn)程的啟動、關(guān)閉、重啟進(jìn)行自動管理。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號