Linux下面Chkconfig 命令應用詳解[轉載]
Linux下面Chkconfig 命令應用詳解
轉載自:http://www.kevindeng.org/html/detailed-application-of-the-following-linux-command-chkconfig.html
背景:前面轉載了一篇關於chkconfig管理init的文章,這裏我們就來應用一下chkconfig
思路:使用具體的例子來說明
步驟:
下面就要說一些實際應用中的東西,原創+重點。嘿嘿
我在應用的時候就碰到過這樣的情況,系統啓動的時候報一大堆無法連接mysql的錯誤,問題就是,在mysql數據庫存還沒有啓動的時候已經啓動了一些需要連接mysql數據庫的服務。這樣我們就得修改啓動順序來把需要連接mysql數據庫的服務放到mysql服務啓動之後再啓動。這樣我們就得修改啓動腳本。一般是在/etc/rc.d/init.d下面。主要是這部分,如下所示:
1 2 3 4 | # chkconfig: 345 98 02 # description: Nagios network monitor # # File : nagios |
其中我們要修改的就是:# chkconfig: 345 99 01 後面的數字部分
1 | 345 98 02 |
這三組數字到底是什麼意思呢?
345代表的是系統的啓動級別。也就是說系統在345的啓動級別的時候會啓動nagios服務
98 02 這裏有兩組數字分別代表的是系統啓動的時候應用程序也就是服務的啓動級別和系統關閉的時候應用程序關閉的級別。其中98就是啓動級別,02就是關閉級別
345 如果在啓動腳本里出現了這組數字,那麼在執行chkconfig –add nagios的時候就相當於我們執行了chkconfig –add nagios 和chkconfig –level 345 nagios on兩條命令。
實踐,如圖:
執行chkconfig –add npcd 如圖所示:
只執行了chkconfig –add npcd,結果345的狀態爲on了,因爲腳本里面已經包含了345。也就是上面說的實際上相當於執行了兩條命令。在這裏就可以直接執行service npcd start了。
如果沒有出現這組數據(345)或者出現了-,就說明在執行完chkconfig –add npcd 後一定要執行chkcofnig –level 345 nagios on這條命令後才能保證服務在機器重啓後依然有效
實踐:
執行chkconfig –add npcd
看到沒,所有的狀態都是off。這樣我們就必須執行chkconfig –level 345 npcd on之後我們才能保證服務在機器重啓後依然有效。
下面我們來以httpd和nagios爲例子來做一下比較,看是數值大的先啓動或者關閉,還是數值小的先啓動或者關閉。實踐出真知。
httpd的優先級如圖所示(在http啓動腳本里就只出現了-,前面我們已經說到過了):
nagios的優先級如圖所示(nagios裏就出現了前面所說的345這組數值):
99和85 這組數字就是系統啓動的時候服務啓動的優先級:數字越小,優先級越高,也就是啓動的時候數值越小越先啓動。如圖所示:
01 和15這組數值就是系統關閉的時候關閉服務的優先級:數字越小,優先級越高,也就是關閉的時候數值越小越先關閉。如圖所示:
實踐證實:
數值越小,就越先啓動和關閉。
數值越大,就越後啓動和關閉。
理解了這個,那在處理問題和處理服務之間的依賴關係的時候就相當簡單了,要不然都不知道怎麼去修改那個服務的啓動順序。有時候這個依賴關係處理的不好,導致報錯,mysql就是一個很好的例子。