守護進程的原理

守護進程的原理:

(1)             Client/Server模式下。服務器監聽(Listen)在一個特定的端口上等待客戶連接。連接成功後服務器和客戶端通過端口進行數據通信。守護進程的工作就是打開一個端口,並且等待(Listen)進入連接。如果客戶端產生一個連接請求,守護進程就創建(Fork)一個子服務器響應這個連接,而主服務器繼續監聽其他的服務請求。

(2)             獨立模式:獨立運行的守護進程由init腳本負責管理,所有獨立運行的守護進程的腳本在/etc/rc.d/init.d/目錄下。系統服務都是獨立運行的守護進程包括:syslogdcron等。運行獨立的守護進程工作方式稱作:standalone。它Unix傳統的C/S模式的訪問模式。服務器監聽(Listen)在一個特點的端口上等待客戶端的聯機。如果客戶端產生一個連接請求,守護進程就創建(Fork)一個子服務器響應這個連接,而主服務器繼續監聽。以保持多個子服務器池等待下一個客戶端請求。工作在standalone模式下的網絡服務有routegated。另外是大家最熟悉是Web服務器:Apache和郵件服務器Sendmail、域名服務器Bind。因爲這些負載很大服務器上,預先創子服務器,可以通過客戶的服務速度。在Linux系統中通過standalone工作模式啓動的服務由/etc/rc.d/下面對應的運行級別當中的符號鏈接啓動。

(3)             xinetd模式 :從守護進程的概念可以看出,對於系統所要通過的每一種服務,都必須運行一個監聽某個端口連接所發生的守護進程,這通常意味着資源浪費。爲了解決這個問題,Linux引進了網絡守護進程服務程序的概念。Redhat Linux 9.0使用的網絡守護進程是xintedeXtended InterNET daemon)。和standalone模式相比xinted模式也稱 Internet SuperServer(超級服務器)。xinetd能夠同時監聽多個指定的端口,在接受用戶請求時,他能夠根據用戶請求的端口不同,啓動不同的網絡服務進程來處理這些用戶請求。可以把xinetd看做一個管理啓動服務的管理服務器,它決定把一個客戶請求交給那個程序處理,然後啓動相應的守護進程。和standalone工作模式相比,系統不想要每一個網絡服務進程都監聽其服務端口。運行單個xinetd就可以同時監聽所有服務端口,這樣就降低了系統開銷,保護系統資源。但是對於訪問量大、經常出現併發訪問時,xinetd想要頻繁啓動對應的網絡服務進程,反而會導致系統性能下降。察看系統爲Linux服務提供那種模式方法在Linux命令行可以使用pstree命令可以看到兩種不同方式啓動的網絡服務。一般來說系統一些負載高的服務:sendmailApache服務是單獨啓動的。而其他服務類型都可以使用xinetd超級服務器管理。查看目前運行的守護進程可以使用命令:“pstree”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章