什么是daemon與服務(service)
常駐內存的是進程,可以提供一些系統或網絡功能,這就是服務。實現service的程序稱為daemon。也就是說要想提供某種服務,daemon實在后臺運行的。
daemon的分類:
1)可獨立啟動,啟動后加載到內存,一直占用內存與系統資源,stand alone的daemon相應速度快,常見的有www的daemon(httpd),ftp的daemon(vftpd)。
2)super daemon統一管理,有客戶端訪問,才將服務加載到內存,訪問結束后釋放資源,類似網路防火墻的功能,具有安全管控的機制。由于服務加載內存需要時間,所以響應時間會慢一些。
案例:現有進程p1,客戶端1,super daemon(常駐內存),
當客戶端1發起請求時候,super daemon 觸發進程p1稱為daemon加載到內存中,此時,客戶端的請求(例如daemon1)才可以達成鏈接,當請求結束后,daemon1將會被刪除。
兩種模式? 第一種就是? 1 對1? ?第二種? ?是 1 對 1 對多,相當于有個總控制臺,收到請求后轉發給下面對應的負責daemon
super daemon又分為單線程和多線程,這個更好理解了,單線程,類似多個用一個取款機,多線程當然就是多人用多個取款機這種,用在這里,單線程一個服務處理一個請求,結束后在轉下一個,多線程則是一個服務處理多個請求。
deamon工作形態類型,
信號管理? 只要有客戶請求,它就會立即處理,例如打印服務
interval-control 每隔一段時間就主動去執行某項工作,在配置文件里面指定服務和時間,例行性任務at和crond就屬于這種類型daemon
daemon命名規則,默認都是在服務名稱后加d,例如at和cron這兩個服務,他的程序文件名就是atd,crond,其中d代表daemon意思。
二,查看服務和端口的配置文件,第一列就是daemon的名字
less? /etc/services
daemon的啟動腳本和啟動方式
啟動腳本放置處:/etc/init.d/*?
各個服務的初始化環境配置文件 /etc/sysconfig/*
/etc/xinetd.confi,/etc/xinetd.d/*:super daemon配置文件
/etc/* 各服務各自的配置文件
/var/lib/* 各服務產生的數據庫,mysql的數據庫默認寫入到、/var/lib/mysql/這個目錄下
/var/run/* 各服務的程序的pid記錄處,daemon、通常會將自己的pid記錄一份文件到此目錄下
centos7的chkconfig命令運行會提示如下:
由上圖可以了解,改版后需要用systemctl查看了,如上圖
daemon的分類stand_alone可以單獨啟動的服務
可以添加到/etc/init.d/ 目錄下,然后利用chkconfig --add? 服務名 添加開機啟動
分類2:通過super daemon統一管理分發
各個服務和端口的對應
啟動的腳本和方式,系統版本不同會略有不同
如果是super daemon的服務則是在目錄/etc/xinetd.d/新建啟動腳本