啟動或者關閉系統服務,設定服務的運作級别,該指令并不會立刻啟動或者停止服務,而是在開機的時候發生效果。
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檔案現在存在,并且與基礎配置腳本不同,則更改服務名稱的配置檔案,而不使用基礎配置。 |
每個應該由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:關閉 |