天天看點

Linux基礎指令---chkconfig

chkconfig

啟動或者關閉系統服務,設定服務的運作級别,該指令并不會立刻啟動或者停止服務,而是在開機的時候發生效果。

chkconfig提供了一個簡單的指令行工具,用于維護/etc/rc[0-6].d目錄層次結構,使系統管理者不必直接操作這些目錄中的許多符号連結。這個chkconfig的實作受到IRIX作業系統中的chkconfig指令的啟發。但是,這個版本沒有在/etc/rc[0-6].d層次結構之外維護配置資訊,而是直接管理/etc/rc[0-6].d中的符号連結。這将留下所有有關在單個位置啟動服務init的配置資訊。

chkconfig有五個不同的功能:添加用于管理的新服務、從管理中删除服務、列出服務的目前啟動資訊、更改服務的啟動資訊以及檢查特定服務的啟動狀态。

當chkconfig後面隻有一個服務名稱的時候,它會檢查服務是否配置為在目前運作級中啟動。如果是,則chkconfig傳回true;否則傳回false。“--level”選項可以用來使chkconfig查詢指定運作級下的服務狀态,而不是目前的運作級。當使用“--list”參數運作chkconfig或根本沒有參數時,将顯示所有服務及其目前配置的清單。

如果在服務名稱之後指定了on、off、reset或resetpriorities之一,則chkconfig将更改指定服務的啟動資訊。on和off标志将分别導緻服務在被更改的運作級别中啟動或停止。reset标志将服務的所有運作級别的on/off狀态重置為init腳本檔案中指定的樣子,重置的時候會有一個詢問。而resetpriorities标志則會直接将服務的on/off狀态重置為init腳本中指定樣子。預設情況下,on和off選項隻影響運作級别2、3、4和5,而reset和resetpriorities影響所有運作級别。請注意,對于每個服務,每個運作級都有一個開始腳本或一個停止腳本。當切換runlevel時,init将不會重新啟動已經啟動的服務,也不會重新停止未運作的服務。

chkconfig還可以通過xinetd.d配置檔案管理xinetd腳本,xinetd服務隻支援on、off、--list。

chkconfig支援一個“--type”參數,當幾個服務共享名字的情況下,這個選項就有效。支援該選項的服務可以是sysv和xinetd。

此指令的适用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1 、文法 chkconfig [--list]  [--type type][name] chkconfig --add  name chkconfig --del  name chkconfig - -override  name chkconfig [--level levels]  [--type type]  name  |off|reset|resetpriorities> chkconfig [--level levels]  [--type type]  name  2 、選項清單
選項 說明
--help 幫助資訊
--version 顯示指令版本資訊
--list 服務名 此選項列出chkconfig所知道的所有服務,以及它們是在每個運作級别中停止還是啟動。如果指定了名稱,則僅顯示有關服務名稱的資訊。
--add 服務名 增加服務。當添加新服務時,chkconfig確定服務在每個運作級别上都有一個啟動項或一個殺死項。如果任何運作級缺少這樣的條目,chkconfig将按照init腳本中的預設值建立适當的條目。請注意,“INIT INFO”部分中的預設條目優先于initscript中的預設運作級别;如果存在任何必需的啟動或要求停止條目,則将調整腳本的開始和停止優先級,以考慮這些依賴項。
--del 服務名 将服務從chkconfig管理中删除,與它相關的/etc/rc[0-6].d中的任何符号連結都被删除。
--level [levels] [name] [on|off|reset] 設定指定服務在指定運作級别的開機狀态,級别可以是0~6。例如: chkconfig –level 35 vsftpd on
--override name 如果/etc/chkconfig.d/name檔案現在存在,并且與基礎配置腳本不同,則更改服務名稱的配置檔案,而不使用基礎配置。
3 、關于運作級别

每個應該由chkconfig管理的服務都需要在其init.d腳本中添加兩行或者多行注釋。第一行告訴chkconfig預設應該在什麼運作級别啟動服務,以及啟動和停止優先級級别。如果服務在預設情況下不應該在任何運作級别中啟動,則應該使用“-”來代替runlevel清單。第二行包含服務的描述,并且可以通過反斜杠繼續擴充多行。例如random.init中有三行注釋

# chkconfig: 2345 20 80

# description: Saves and restores system entropy pool for \

# higher quality random number generation.

這意味着随機腳本應該在級别2、3、4和5中啟動,它的開始優先級應該是20,它的停止優先級應該是80。

chkconfig還支援從左到右的“-”分隔符,并将優先于可用的“chkconfig:”行應用它們。例如下面的:

### BEGIN INIT INFO

# Provides: foo

# Required-Start: bar

# Defalt-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Description: Foo init script

### END INIT INFO

在這種情況下,“foo”的啟動優先級将被更改,它将高于“bar”啟動優先級。在添加依賴項時必須小心,因為它們可能導緻許多腳本的啟動和停止優先級發生巨大變化。

4 、執行個體

1)檢視所有服務

[root@localhost ~]#  chkconfig --list

NetworkManager    0:關閉  1:關閉  2:啟用  3:啟用  4:啟用  5:啟用  6:關閉

    …

基于 xinetd 的服務:

    chargen-dgram:    關閉

    chargen-stream:   關閉

2)檢視指定服務

chkconfig --list vsftpd vsftpd         0:關閉  1:關閉  2:關閉  3:關閉  4:關閉  5:啟用  6:關閉

3)設定ftp服務在3和5這兩個級别啟動

chkconfig --level 35 vsftpd on    // 級别 5 啟動 chkconfig --list vsftpd             // 檢視是否設定成功 vsftpd         0:關閉  1:關閉  2:關閉  3:啟用  4:關閉  5:啟用  6:關閉

繼續閱讀