Linux基礎命令---chkconfig

一生有你llx發表於2018-10-21

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    // 級別 3 5 啟動

[root@localhost ~]#  chkconfig --list vsftpd             // 檢視是否設定成功

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



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29270124/viewspace-2216972/,如需轉載,請註明出處,否則將追究法律責任。

相關文章