linux啟動服務優化准備工作
如果想采用本文介紹的方法對Linux系統進行設置,首先要熟悉Linux系統的設置語言。對系統的啟動過程進行設置是一項比較危險的行為,容易造成系統無法啟動。一旦發生這種情況,最好重新啟動系統後選擇單一用戶模式,將系統還原並重啟。當然,最重要的是在設置前備份重要數據。
其次,建議用戶最好在對本機系統進行修改前,先進行修改測試。如果用戶只有一台計算機,那麼這裡建議使用用戶模式Linux系統(UML)進行測試。UML是一個內核補丁,它可以將Linux系統的內核轉譯成為二進制,以便用戶可以像使用普通軟件那樣運行Linux系統。一旦出現意外情況,損失的只是UML,而原系統卻可安然無恙。
Linux系統的啟動順序和runlevel
Linux系統的啟動包括多個步驟,這裡主要介紹一下內核加載後的系統啟動步驟。用戶可以通過運行/sbin/runlevel命令來查看系統目前的runlevel。runlevel是Linux系統用來區別系統高級啟動設置類型的數字。這些數字十分常見,它們中的絕大多數都有著明確的含義。以Red Hat Linux系統為例,它的runlevel主要有以下幾種(見表1):
init如何初始化系統
init可以通過一個ASCⅡ設置文件得知如何改變系統的runlevel。通常情況下該設置文件可以指引init來執行/etc/rc.d/rc命令,從而獲得runlevel的相關信息。
系統服務
用戶所需要的各種系統服務都是由rc指令程序來啟動的。系統潛在的服務紛繁復雜。大多數Linux系統通常只提供sshd(SecureShell服務)、syslog(系統日志工具)和lpd(打印服務)等功能。
用戶可以從/etc/rc.d/目錄中找到所有的服務。如果打開這個目錄,會發現許多服務只是一種外殼程序,它只是引導其它程序來完成工作。也許有人會問,rc程序是如何知道每個runlevel要運行哪些程序呢?答案是在/etc/rc.d/目錄下面與init.d/目錄並列的還有一些目錄,它們各自對應著自己的runlevel。它們的名稱為rc*.d/,例如runlevel 5就是/etc/rc.d/rc5.d/。每個rc*.d/目錄中包含著兩個符號鏈接,這些鏈接可以連接到/etc/init.d/目錄中的指定服務程序。