1.daemon程序
service是個抽象的概念,實現這個service的程序我們稱之為daemon程序。可以理解為daemon為程序裡面的一類。daemon可以翻譯成守護程序、後台程序。
2.daemon程序的命名規則
daemon程序一般會在服務的名稱後面加上乙個字母d,流入httpd,sshd,atd,crond等等
3.daemon程序的分類
按照daemon的啟動和管理方式來區分,分為如下兩類:
(1)可以單獨啟動的stand_alone daemon程序
stand_alone daemon程序的啟停指令碼scripts都放在了/etc/init.d/*目錄中,例如啟停httpd服務的命令是:
另外可以用乙個指令碼/sbin/service來啟動服務,其實是對上面的方式封裝了一下。例如啟停httpd服務的命令也可以是:
備註:a)/sbin/service --status-all 可以檢視所有服務的工作狀態
b)這些都是sysvinit初始化init系統的管理方式,而使用systemd就不是這個樣子了哈
(2)由乙個稱為super daemon的程序來統一管理的daemon程序
super daemon程序有inetd和xinetd,現在主流用的是xinetd,其實super daemon自身是乙個stand_alone的daemon程序,那麼它自身的啟停方式參見上面的說明即可。
super daemon程序的工作機制是其管理了很多的服務,當沒有客戶端的請求時,各項服務都是未啟動的狀態,等待有來自客戶端的請求時,super daemon才喚醒相對應的服務。當客戶端的請求結束後,被喚醒的這個服務也會關閉並釋放系統資源。這是和stand_alone daemon程序的重要區別,也就是daemon程序是否一直開啟服務。常見的由super daemon管理的daemon程序有rsync,telnet等。
super daemon自身的配置檔案是/etc/xinetd.conf
super dammon所管理的服務,都會在/etc/xinit.d目錄下有乙個單獨的檔案,檔案中標識該服務是否disable等資訊。例如rsync服務對應的檔案就是/etc/xinetd.d/rsync。
舉例來說,使用xinetd服務來啟停rsync daemon服務得操作是:
#使用xinetd super-daemon程序來啟動rsync服務
步驟二:重啟xinetd服務,使用/etc/init.d/xinetd restart命令
#使用xinetd super-daemon程序來停止rsync服務
步驟二:重啟xinetd服務,使用/etc/init.d/xinetd restart命令
linux 守護程序 daemon
原文出處 daemon程式簡介 daemon是長時間執行的程序,通常在系統啟動後就執行,在系統關閉時才結束。一般說daemon程式在後台執行,是因為它沒有控制終端,無法和前台的使用者互動。daemon程式一般都作為服務程式使用,等待客戶端程式與它通訊。我們也把執行的daemon程式稱作守護程序。比如...
Linux 守護程序Daemon
守護程序是生存期長的一種程序。linux常用於伺服器,程式通常不執行在前台。執行於前台的程序和終端關聯,一旦終端關閉,程序也隨之退出。因為守護程序不和終端關聯,因此它的標準輸出和標準輸入也無法工作,除錯資訊應該寫入到普通檔案中,以便將來進行錯誤定位和除錯。而且守護程序通常以root許可權執行。程式示...
linux 建立daemon程序
方法一 使用傳統的fork 函式。示例 如下 static void daemon init const char workdir,mode t mask first child continues become session leader setsid signal sighup,sig ign...