深入理解Linux守護進程

深入理解Linux守護進程

以下為轉貼文,放在電腦很久哩,想說放到日誌內收藏。(懶得再對內容作整理^^)

Linux服務器在起動時需要起動很多系統服務,它們向本地和網絡用戶提供了Linux的系統功能接口,直接面嚮應用程序和用戶。提供這些服務的程序是由運行在後台的守護進程(daemons)來執行的。守護進程是生存期長的一種進程。它們獨立於控制終端並且週期性的執行某種任務或等待處理某些發生的事件。他們常常在系統引導裝入時?動,在系統關閉時終止。linux系統有很多守護進程,大多數服務器都是用守護進程實現的。同時,守護進程完成許多系統任務,比如,作業規劃進程crond、打印進程lqd等。有些書籍和資料也把守護進程稱作:「服務」。選擇運行哪些守護進程,要根據具體需求決定。查看系統可以提供的守護進程對應的服務,使用下面方法,以root權限運行:

#ntsysv (redhat)

界面如圖1(請自己打)所示的窗口,下面詳細介紹一下各項系統服務的功能。以英文字母排序:
一、Linux守護進程簡介
1. alsasound :Alsa聲卡驅動守護程序。Alsa聲卡驅動程序本來是?了 一種聲卡Gravis UltraSound(GUS)而寫的,該程序被證 明很優秀,於是作者就開始?一般的聲卡寫 驅動程序。 Alsa和OSS/Free 及OSS/Linux兼容,但是有自己的接 口,甚至比 OSS優秀。
2. acpid:acpid(Advanced Configuration and Power Interface)是?替代傳統的APM電源管理標準而推出的新型電源管理標準。通常筆記本電腦需要?動電源進行管理。
3. atalk:AppleTalk網絡守護進程。注意不要在後台運行該程序,該程序的數據結構必須在運行其他進程前先花一定時間初始化。
4. amd: 自動安裝NFS守護進程。
5. anacron:一個自動化運行任務守護進程。Red Hat Linux 隨帶四個自動化任務的工具:cron、 anacron、at、和 batc。當你的Linux服務器並不是全天運行,這個anacron就可以幫你執行在"crontab"設定的時間內沒有執行的工作。
6. apmd:apmd(Advanced Power Management)是高級電源管理。傳統的電源管理標準,對於筆記本電腦比較有用,可以瞭解系統的電池電量信息。並將相關信息通過syslogd 寫入日誌。也可以用來在電源不足時關機。
7. arptables
二、守護進程工作原理和方式
在Client/Server模式下。服務器監聽(Listen)在一個特定的端口上等待客戶連接。連接成功後服務器和客戶端通過端口進行數據通信。守護 進程的工作就是打開一個端口,並且等待(Listen)進入連接。如果客戶端產生一個連接請求,守護進程就創建(Fork)一個子服務器響應這個連接,而 主服務器繼續監聽其他的服務請求。
[#M_ more.. | less.. |守護進程工作方式:
(1) 運行獨立的守護進程
獨立運行的守護進程由init腳本負責管理,所有獨立運行的守護進程的腳本在/etc/rc.d/init.d/目錄下。系統服務都是獨立運行的守護進程包括:syslogd和cron等。運行獨立的守護進程工作方式稱作:stand-alone。它Unix傳統的C/S模式的訪問模式。服務器監聽(Listen)在一個特點的端口上等待客戶端的聯機。如果客戶端?生一個連接請求,守護進程就創建(Fork)一個子服務器響應這個連接,而主服務器繼續監聽。以保持多個子服務器池等待下一個客戶端請求。

工作在stand-alone模式下的網絡服務有route、gated。另外是大家最熟悉是Web服務器:Apache和郵件服務器 Sendmail、域名服務器Bind。因?這些負載很大服務器上,預先創子服務器,可以通過客戶的服務速度。在Linux系統中通過stand- alone工作模式起動的服務由/etc/rc.d/下面對應的運行級別當中的符號鏈接?動。

(2) xinetd模式
從守護進程的概念可以看出,對於系統所要通過的每一種服務,都必須運行一個監聽某個端口連接所發生的守護進程,這通常意味著資源浪費。?瞭解決這個問題,Linux引進了「網絡守護進程服務程序」的概念。Redhat Linux 9.0使用的網絡守護進程是xinted (eXtended InterNET daemon)。和stand-alone模式相比xinted模式也稱 Internet Super- Server(超級服務器)。xinetd能夠同時監聽多個指定的端口,在接受用戶請求時,他能夠根據用戶請求的端口不同,?動不同的網絡服務進程來處理這些用戶請求。可以把xinetd看做一個管理?動服務的管理服務器,它決定把一個客戶請求交給那個程序處理,然後?動相應的守護進程。

和stand-alone工作模式相比,系統不想要每一個網絡服務進程都監聽其服務端口。運行單個xinetd就可以同時監聽所有服務端口,這樣就降低了系統開銷,保護系統資源。但是對於訪問量大、經常出現並發訪問時,xinetd想要頻繁?動對應的網絡服務進程,反而會導致系統性能下降。察看系統?Linux服務提供那種模式方法在Linux命令行可以使用pstree命令可以看到兩種不同方式?動的網絡服務。一般來說系統一些負載高的服務: sendmail、Apache服務是單獨?動的。而其他服務類型都可以使用xinetd超級服務器管理。查看目前運行的守護進程可以使用命令: 「pstree」_M#]三、守護進程管理工具
Linux提供了三種不同的守護進程管理工具:redhat-config-services、ntsysv、chkconfig,可以根據具體需要靈活運用。
[#M_ more.. | less.. | (1) redhat-config-services
redhat-config-services是一個一個圖形化應用程序,它顯示了每項服務的描述,以及每項服務是否在引導時?動(運行級別3、4、 5),並允許你?動、停止、或重新?動/etc/rc.d/init.d 中的哪些 SysV 服務,哪些 xinetd 服務。要從桌面?動服務配置工具,點擊面板上的「主菜單」 =>; 「系統設置」 =>; 「服務器設置」 =>; 「服務」,或在 shell 提示下,鍵入命令:「redhat-config-services」 (見圖4)。

圖4 redhat-config-services配置工具
redhat-config-services列出了 /etc/rc.d/init.d 中的服務和由 xinetd 控制的服務。點擊左側列表中的服務名來顯示該服務的簡短描述以及它的服務狀態。如果這個服務不是 xinetd 服務,狀態窗口會顯示該服務目前是否在運行。如果該服務被 xinetd 所控制,狀態窗口會顯示「xinetd 服務」這個短語。要立即?動、停止、或重新?動某項服務,從列表中選擇該項服務,然後點擊工具欄上的相應按鈕(或從「行動」拉下菜單中選擇行動)。如果該服務是一個 xinetd 服務,行動按鈕會被禁用,因?它們不能被單個地?動或停止。 如果你通過選擇或取消選擇服務名旁的複選箱來?用或禁用了 xinetd 服務,你必須從拉下菜單中選擇「文件」 =>; 「保存改變」來重新?動 xinetd,並立即?用或禁用你所改變的 xinetd 服務。xinetd 還被配置成自動記憶設置。你可以同時?用或禁用多個 xinetd 服務,在結束後再保存改變。

(2) ntsysv
ntsysv 工具?激活或停運服務提供了簡單的界面。你可以使用 ntsysv 來?動或關閉由 xinetd 管理的服務。你還可以使用 ntsysv 來配置運行級別。按照默認設置,只有當前運行級別會被配置。要配置不同的運行級別,使用 --level 選項來指定一個或多個運行級別。譬如,命令 ntsysv --level 345 配置運行級別3、4、和5。 ntsysv 的工作界面見圖1。使用上下箭頭來上下查看列表。使用空格鍵來選擇或取消選擇服務,或用來「按」「確定」和「取消」按鈕。要在服務列表和「確定」、「取消」按鈕中切換,使用 [Tab]鍵。* 標明某服務被設??動。[F1] 鍵會彈出每項服務的簡短描述。

(3) chkconfig
chkconfig 命令也可以用來激活和解除服務。chkconfig --list 命令顯示系統服務列表,以及這些服務在運行級別0到6中已被?動(on)還是停止(off)。chkconfig 還能用來設置某一服務在某一指定的運行級別內被?動還是被停運。譬如,要在運行級別3、4、5中停運 nfs 服務,使用下面的命令:
chkconfig --level 345 nfs off_M#]四、合理選擇守護進程規避安全隱患
[#M_ more.. | less.. | 運行不必要或有漏洞的守護進程會給操作系統帶來安全和性能上的影響。對於系統安全來說,如果操作系統中的任何一個漏洞,都可能使整個系統受到攻擊。所以,增加系統安全的最佳辦法就是儘量監視系統的功能。文章開始介紹了重要的守護進程,其中「crond、syslog、keytable、xinetd、 kudzu、iptables」等是需要運行的,echo、echo-udp、daytime、daytime-udp、chargen、chargen -udp主要是做調試用,普通用戶基本用不到,可以關閉。
r字開頭的守護進程:rsh、rstatd、rsync、rusersd、rwalld這些命令都是Berkley遠程命令,因?都以字母r開頭,故稱 r*命令。主要使用來使一台計算機上的某個用戶以相同的帳戶遠程執行另一台計算機的一個程序。但是,r命令已經被證實存在安全風險。對於確實需要的守護進程,應該儘量選用最新的版本程序,並增加其安全防範。
另外我們還要合理選擇守護進程例如innd是運行新聞組服務的進程,如果用戶不做Usenet服務器,應該關掉。_M#]總結:
基於開放源代碼的Linux給用戶提供了這樣一個平台:可以根據自己的軟、硬件環境,定製自己的Linux守護進程。因此,根據每個用戶不同的應用範圍定製應用環境,可以將Linux系統的安全和性能提升到新的高度

深入理解Linux守護進程 參考影音

繼續努力蒐集當中...

深入理解Linux守護進程 文章標籤

深入理解Linux守護進程 相關文章

星火NEW直播: 最新 APK 下載

第四台業者會哭哭的~

TOP