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  <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.

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

[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:關閉

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章