chkconfig 命令主要用來更新(啓動或停止)和查詢系統服務的執行級資訊。謹記 chkconfig 不是立即自動禁止或啓用一個服務,它只是簡單的改變了符號連線。
使用語法:
chkconfig [–add][–del][–list][系統服務] 或 chkconfig [–level <等級代號>][系統服務][on/off/reset]
chkconfig 在沒有引數執行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前執行級啓動。如果是,返回 true,否則返回 false 。如果在服務名後面指定了 on,off 或者 reset,那麼 chkconfi 會改變指定服務的啓動資訊。 on 和 off 分別指服務被啓動和停止,reset 指重置服務的啓動資訊,無論有問題的初始化指令碼指定了什麼。 on 和 off 開關,系統預設只對執行級 3,4,5 有效,但是 reset 可以對所有執行級有效。
引數用法:
–add  增加所指定的系統服務,讓 chkconfig 指令得以管理它,並同時在系統啓動的敍述檔案內增加相關資料。
–del  刪除所指定的系統服務,不再由 chkconfig 指令管理,並同時在系統啓動的敍述檔案內刪除相關資料。
–level<等級代號>  指定讀系統服務要在哪一個執行等級中開啓或關畢。
等級 0 表示:表示關機
等級 1 表示:單使用者模式
等級 2 表示:無互聯網連線的多使用者命令列模式
等級 3 表示:有互聯網連線的多使用者命令列模式
等級 4 表示:不可用
等級 5 表示:帶圖形介面的多使用者模式
等級 6 表示:重新啓動
需要説明的是,level 選項可以指定要檢視的執行級而不一定是當前執行級。對於每個執行級,只能有一個啓動指令碼或者停止指令碼。當切換執行級時,init 不會重新啓動已經啓動的服務,也不會再次去停止已經停止的服務。
chkconfig –list [name]:顯示所有執行級系統服務的執行狀態資訊(on 或 off)。如果指定了 name,那麼只顯示指定的服務在不同執行級的狀態。
chkconfig –add name:增加一項新的服務。 chkconfig 確保每個執行級有一項啓動 (S) 或者殺死 (K) 入口。如有缺少,則會從預設的 init 指令碼自動建立。
chkconfig –del name:刪除服務,並把相關符號連線從/etc/rc[0-6].d 刪除。
chkconfig [–level levels] name:設定某一服務在指定的執行級是被啓動,停止還是重置。
執行級檔案:
每個被 chkconfig 管理的服務需要在對應的 init.d 下的指令碼加上兩行或者更多行的註釋。第一行告訴 chkconfig 預設啓動的執行級以及啓動和停止的優先順序。如果某服務預設不在任何執行級啓動,那麼使用 – 代替執行級。第二行對服務進行描述,可以用 跨行註釋。
例如,random.init 包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for
# higher quality random number generation.
使用範例:
chkconfig –list        #列出所有的系統服務
chkconfig –add httpd        #增加 httpd 服務
chkconfig –del httpd        #刪除 httpd 服務
chkconfig –level httpd 2345 on        #設定 httpd 在執行級別為 2 、 3 、 4 、 5 的情況下都是 on(開啓)的狀態
chkconfig –list        #列出系統所有的服務啓動情況
chkconfig –list mysqld        #列出 mysqld 服務設定情況
chkconfig –level 35 mysqld on        #設定 mysqld 在等級 3 和 5 為開機執行服務,–level 35 表示操作只在等級 3 和 5 執行,on 表示啓動,off 表示關閉
chkconfig mysqld on        #設定 mysqld 在各等級為 on,“各等級” 包括 2 、 3 、 4 、 5 等級
如何增加一個服務:
1. 服務指令碼必須存放在/etc/ini.d/目錄下;
2.chkconfig –add servicename
在 chkconfig 工具服務列表中增加此服務,此時服務會被在/etc/rc.d/rcN.d 中賦予 K/S 入口了;
3.chkconfig –level 35 mysqld on
修改服務的預設啓動等級。