Linux基礎命令---chkconfig

chkconfigdom

啓動或者關閉系統服務,設置服務的運行級別,該指令並不會馬上啓動或者中止服務,而是在開機的時候發生效果。ide

chkconfig提供了一個簡單的命令行工具,用於維護/etc/rc[0-6].d目錄層次結構,使系統管理員沒必要直接操做這些目錄中的許多符號連接。這個chkconfig的實現受到IRIX操做系統中的chkconfig命令的啓發。可是,這個版本沒有在/etc/rc[0-6].d層次結構以外維護配置信息,而是直接管理/etc/rc[0-6].d中的符號連接。這將留下全部有關在單個位置啓動服務init的配置信息。工具

chkconfig有五個不一樣的功能:添加用於管理的新服務、從管理中刪除服務、列出服務的當前啓動信息、更改服務的啓動信息以及檢查特定服務的啓動狀態。ui

當chkconfig後面只有一個服務名稱的時候,它會檢查服務是否配置爲在當前運行級中啓動。若是是,則chkconfig返回true;不然返回false。「--level」選項能夠用來使chkconfig查詢指定運行級下的服務狀態,而不是當前的運行級。當使用「--list」參數運行chkconfig或根本沒有參數時,將顯示全部服務及其當前配置的清單。spa

若是在服務名稱以後指定了on、off、reset或resetpriorities之一,則chkconfig將更改指定服務的啓動信息。on和off標誌將分別致使服務在被更改的運行級別中啓動或中止。reset標誌將服務的全部運行級別的on/off狀態重置爲init腳本文件中指定的樣子,重置的時候會有一個詢問。而resetpriorities標誌則會直接將服務的on/off狀態重置爲init腳本中指定樣子。默認狀況下,on和off選項隻影響運行級別二、三、4和5,而reset和resetpriorities影響全部運行級別。請注意,對於每一個服務,每一個運行級都有一個開始腳本或一箇中止腳本。當切換runlevel時,init將不會從新啓動已經啓動的服務,也不會從新中止未運行的服務。操作系統

chkconfig還能夠經過xinetd.d配置文件管理xinetd腳本,xinetd服務只支持on、off、--list。命令行

chkconfig支持一個「--type」參數,當幾個服務共享名字的狀況下,這個選項就有效。支持該選項的服務能夠是sysv和xinetd。rest

此命令的適用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。code

1、語法orm

chkconfig [--list]  [--type type][name]

chkconfig --add  name

chkconfig --del  name

chkconfig - -override  name

chkconfig [--level levels]  [--type type]  name  <on|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.

這意味着隨機腳本應該在級別二、三、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)查看指定服務

[root@localhost ~]# chkconfig --list vsftpd

vsftpd         0:關閉  1:關閉  2:關閉  3:關閉  4:關閉  5:啓用  6:關閉

3)設置ftp服務在3和5這兩個級別啓動

[root@localhost ~]# chkconfig --level 35 vsftpd on    //級別35啓動

[root@localhost ~]# chkconfig --list vsftpd             //查看是否設置成功

vsftpd         0:關閉  1:關閉  2:關閉  3:啓用  4:關閉  5:啓用  6:關閉

相關文章
相關標籤/搜索