守護進程(daemon)php
在linux或者unix操做系統中在系統的引導的時候會開啓不少服務,這些服務就叫作守護進程。爲了增長靈活性,root能夠選擇系統開啓的模式,這些模式叫作運行級別,每一種運行級別以必定的方式配置系統。 守護進程是脫離於終端而且在後臺運行的進程。守護進程脫離於終端是爲了不進程在執行過程當中的信息在任何終端上顯示而且進程也不會被任何終端所產生的終端信息所打斷。守護進程,也就是一般說的Daemon進程,是Linux中的後臺服務進程。它是一個生存期較長的進程,一般獨立於控制終端而且週期性地執行某種任務或等待處理某些發生的事件。守護進程經常在系統引導裝入時啓動,在系統關閉時終止。Linux系統有不少守護進程,大多數服務都是經過守護進程實現的,同時,守護進程還能完成許多系統任務,例如,做業規劃進程crond、打印進程lqd等(這裏的結尾字母d就是Daemon的意思)。 linux
因爲在Linux中,每個系統與用戶進行交流的界面稱爲終端,每個今後終端開始運行的進程都會依附於這個終端,這個終端就稱爲這些進程的控制終端,當控制終端被關閉時,相應的進程都會自動關閉。可是守護進程卻可以突破這種限制,它從被執行開始運轉,直到整個系統關閉時才退出。若是想讓某個進程不由於用戶或終端或其餘地變化而受到影響,那麼就必須把這個進程變成一個守護進程。網絡
是指在UNIX或其餘多任務操做系統中在後臺執行的電腦程序,並不會接受電腦用戶的直接操控。此類程序會被以進程的形式初始化。守護進程程序的名稱一般以字母「d」結尾:例如,syslogd就是指管理系統日誌的守護進程。操作系統
一般,守護進程沒有任何存在的父進程(即PPID=1),且在UNIX系統進程層級中直接位於init之下。守護進程程序一般經過以下方法使本身成爲守護進程:對一個子進程調用fork,而後使其父進程當即終止,使得這個子進程能在init下運行。這種方法一般被稱爲「脫殼」。unix
系統一般在啓動時一同起動守護進程。守護進程爲對網絡請求,硬件活動等進行響應,或其餘經過某些任務對其餘應用程序的請求進行迴應提供支持。守護進程也可以對硬件進行配置(如在某些Linux系統上的devfsd),運行計劃任務(例如cron),以及運行其餘任務。日誌
在DOS環境中,此類應用程序被稱爲駐留程序(TSR)。在Windows系統中,由稱爲Windows服務的應用程序來履行守護進程的職責。htm
在本來的Mac OS系統中,此類應用程序被稱爲「extensions」。而做爲Unix-like的 Mac OS X有守護進程。(在Mac OS X中也有「服務」,但他們與Windows中相似的程序在概念上徹底不相同。)進程