一,什么是daemons:

       即我們常說的“守護進程”。

       基本上,我們的 Linux 主機常常會收到一些要求,不論是來自本機系統的要求或者是網路Client 端的服務求,反正只要有要求來的時候,通常就是各式各樣的 daemons 負責去喚起應該要工作的 Servers 來工作。daemons 目前有兩種基本的模式,分別是 stand_alone 與 super daemon 。

       stand_alone : 就字面上的意思來說,stand alone 就是『獨立的啟動』的意思,也就是說,該 daemon 啟動之后,就直接常駐在記憶體當中。他雖然會一直的占用系統的資源,但最大的優點就是,他會一直啟動。所以當有要求來的時候,他就會很快速的回應。常常用在這一種 daemon 的網絡服務如常見的 httpd,xinetd 。

  super daemon : 相對于 stand alone 的執行方式,這一種服務的啟動方式則是藉由統一的一個 daemon 來負責喚起該服務!這一個統一負責的 daemon 就是 inet (他是stand_alone類型的daemon)這個服務啦!而在 Red Hat 7.x 以后則是使用 xinet 這個daemon。當有網絡的服務要求來的時候,該要求會先送給 inet 這個服務,然后 inet 根據該網路要求送來的資料封包的內容 ( 該內容會記錄 IP 與 port ) 來將資料封包送給實際運作的服務!而該服務這個時候才會啟動的!最常見到的就是 ftp 這支網路服務啦!這種最大的優點就是當沒有資料封包來的時候,該服務不會一直占據系統資源 ( 該服務會在 sleeping 的狀態 ) ,但是相對的,他的反應時間也會比較慢,因為還要花費一段時間去『喚醒』該服務。telnet服務就是典型的super類型的daemon,它由xinetd調度。

二,Linux(以RedHat Linux9.0為例)下網絡服務相關的文件夾

       stand_alone類型的daemon放在 /etc/rc.d/init.d/ 下

       super 類型的daemon放在 /etc/xinetd.d/ 下。

三,使用方式

       stand類型的啟動有兩種方法:

       1,/etc/rc.d/init.d/httpd start           又如 /etc/rc.d/init.d/xinetd start

       2,service httpd start                      又如 service xinetd start

       alone類型的啟動要在/etc/xinetd.d/下改相應服務的配置文件,是disable字段為no,再重新啟動xinet服務

             如要啟動telnet服務,修改/etc/xinetd.d/telnet文件中的disable字段值為no,再重新啟動xinet

      


文章來源:http://tangwei312tom.blog.163.com/blog/static/2247319220071011112756726