2007年8月17日 星期五

daemon

daemon是什麼
簡單來說,daemon 就是在背景執行的程序。daemon負責系統上的某些服務(service)。

service又是什麼呢?
就是系統所提供的服務,像是http 、ftp 等等,都是。

daemon的分類
依啟動和管理的方式,大致可以分為兩類:
stand_alone
該daemon啟動後,會常駐在記憶體中,一直啟動,優點是當有服務要求時他會很快速的回應,缺點是會一直佔用系統資源。http就是這一類daemon。

super_daemon
這一種服務的啟動方式則是藉由統一的一個 daemon 來負責喚起該服務。都沒有服務要求時,該服務不會一直佔據系統資源,相對的,當有要求時,啟動服務會花較多的時間。
這一個統一負責的 daemon 就是 inet 這支服務啦!不過,在後來的 Linux 發展套件中,則是使用 xinet 這個設定囉!我們這裡以 FC4 的 xinet 來做說明。當有網路的服務要求來的時候,該要求會先送給 xinet 這個服務,然後 xinet 根據該網路要求送來的資料封包的內容 ( 該內容會記錄 IP 與 port ) 來將資料封包送給實際運作的服務!而該服務這個時候才會啟動的!最常見到的就是 ftp 這支網路服務啦!

哪種啟動方式比較好呢?當然還是看主機的用途囉~~~

服務有關的埠口對應資料
/etc/services 這個檔案記載了相關服務與port 的對應資料


Daemon 的命名規則
通常在服務名稱後會加上一個 d ,這個d 就是daemon 的意思。像at atd、http httpd等等。

daemon檔案
stand_alone
這個放置在 /etc/init.d/ 這個目錄裡面,幾乎所有的 RPM 安裝的套件之啟動 scripts 都在這裡啦!不過,實際上,我們的 FC4 是放置到 /etc/rc.d/init.d/* , 但你依舊可以記憶成 /etc/init.d ,因為所有的 unix like 機器都有這個目錄!

super_daemon
這個工作的那一支服務其實就是 xinet 或者是 inet 啦!請注意, xinet 也是一個 daemon 呢!他是 stand alone 啟動的,也就是他會一直在監聽大家的需求,所以 xinet 的啟動 scripts 寫在 /etc/init.d/xinetd 這個 scripts 裡面囉!但是掛在這個 daemon 裡頭的服務之設定項目呢?嗯!就是寫在 /etc/xinetd.conf 與 /etc/xinetd.d/* 這個目錄裡面的任何檔案!

沒有留言: