Linux 守護程式和超級守護程式(xinetd)

Dus發表於2015-02-17

一 、Linux守護程式

Linux 伺服器在啟動時需要啟動很多系統服務,它們向本地和網路使用者提供了Linux的系統功能介面,直接面嚮應用程式和使用者。提供這些服務的程式是由執行在後臺的守護程式來執行的。

守護程式是生存期長的一種程式。它們獨立於控制終端並且週期性的執行某種任務或等待處理某些發生的事件。他們常常在系統引導裝入時啟動,在系統關閉時終止。

linux系統有很多守護程式,大多數伺服器都是用守護程式實現的。同時,守護程式完成許多系統任務,比如,作 業規劃程式crond、列印程式lqd等。有些書籍和資料也把守護程式稱作:“服務”。

         

       守護程式,也就是指daemon和service。

 

二 、Linux守護程式的分類

根據守護程式的啟動和管理方式,可以分為獨立啟動守護程式和超級守護程式兩類


   獨立啟動(stand_alone):該類程式啟動後就常駐記憶體,所以會一直佔用系統資源。其最大的優點就是它會一直啟動,當外界有要求時相應速度較快,像httpd等程式;
   超級守護程式:系統啟動時由一個統一的守護程式xinet來負責管理一些程式,當相應請求到來時需要通過xinet的轉接才可以喚醒被xinet管理的程式。這種程式的優點時最初只有xinet這一守護程式佔有系統資源,其他的內部服務並不一直佔有系統資源,只有資料包到來時才會被xinet管理員來喚醒。並且我們還可以通過xinet來對它所管理的程式設定一些訪問許可權,相當於多了一層管理機制。


如果用兩個比喻來形容兩類守護程式的話一般會用銀行的業務處理視窗來類比:
   獨立啟動:銀行裡有一種單服務的視窗,像取錢,存錢等視窗,這些視窗邊上始終會坐著一個人,如果有人來取錢或存錢,可以直接到相應的視窗去辦理,這個處理單一服務的始終存在的人就是獨立啟動的守護程式;

   超級守護程式:銀行裡還有一種視窗,提供綜合服務,像匯款,轉賬,提款等業務;這種視窗附近也始終坐著一個人(xinet),她可能不提供具體的服務,提供具體服務的人在裡面閒著聊天啊,喝茶啊,但是當有人來匯款時他會大聲喊一句,小王,有人匯款啦,然後裡面管匯款的小王會立馬跑過來幫忙辦完匯款業務。其他的人繼續聊天,喝茶。這些負責具體業務的人我們就稱之為超級守護程式。當然可能匯款人會有一些規則,可能不能往北京匯款,他就會提早告訴xinet,所以如果有人來匯款想匯往北京的話,管理員就直接告訴他這個我們這裡辦不到的,於是就根本不會去喊匯款員了,相當於提供了一層管理機制。針對這種視窗還存在多執行緒和單執行緒的區別:多執行緒:將所有使用者的要求都提上來,裡面的人都別閒著了,都一起幹活吧;
單執行緒:大家都排好隊了,一個一個來,裡面的人同一時間只有一個人在工作。

 

 

xinetd服務是Unix作業系統一項比較特殊的服務,因為它本身可以負責其他一些網路服務的啟動、停止、記錄。Xinetd的全稱是 eXtended InterNET services daemon,經常用來管理多種輕量級Internet 服務,如telnet、 talk、 pop3、 imap 等,有時也用來管理Apache 和ftp服務。

stand alone 的 daemon 響應速度快。常見的 stand alone daemon 有 WWW 的 daemon (httpd)、FTP 的 daemon (vsftpd) 等等。

相關文章