chkconfig是管理系統服務(service)的命令行工具。所謂系統服務(service),就是隨系統啟動而啟動,隨系統關閉而關閉的程序。
chkconfig可以更新(啟動或停止)和查詢系統服務(service)運行級信息。更簡單一點,chkconfig是一個用於維護/etc/rc[0-6].d目錄的命令行工具。
chkconfig 提供5個功能:
1. 設置service啟動信息
# chkconfig name on/off/reset
on、off、reset用於改變service的啟動信息。
on表示開啟,off表示關閉,reset表示重置。
默認情況下,on和off開關只對運行級2,3,4,5有效,reset可以對所有運行級有效。
例如,
# chkconfig httpd on
2. 設置service運行級別
# chkconfig --level levels
例如,
# chkconfig --level 2345 httpd on
指定運行級為2,3,4,5
等級0表示:表示關機
等級1表示:單用戶模式
等級2表示:無網絡連接的多用戶命令行模式
等級3表示:有網絡連接的多用戶命令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多用戶模式
等級6表示:重新啟動
3. 添加service
# chkconfig --add name
添加一個chkconfig管理的service,並在/etc/rc[0-6].d 目錄下添加相應的符號鏈接(symbolic links)。
4. 移除service
# chkconfig --del name
從chkconfig 管理名單中刪除該service,並且刪除 /etc/rc[0-6].d 目錄下所有與之關聯的符號鏈接(symbolic links)。
5. 列出service的啟動信息
# chkconfig --list [name]
如果不指定name,會列出所有services的信息。
每個service每個運行級別都會有一個啟動和停止腳本;當切換運行級別時,init不會重啟已經啟動的service,也不會重新停止已經停止的service。
下面舉例說明
(1).列出所有服務的啟動情況
$ chkconfig --list auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off redis 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off rpcsvcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off smb 0:off 1:off 2:off 3:on 4:off 5:on 6:off 。。。 xinetd based services: rsync: off swat: off
(2)增加mysqld服務
$ chkconfig --add mysqld
(3)刪除mysqld服務
$ chkconfig --del mysqld
(4)設置mysqld運行級別為2,3,4,5
$ chkconfig --level 2345 httpd on
(5)列出mysqld 服務啟動信息情況
$ chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(6)設置啟動信息
$ chkconfig mysqld on
默認的運行級別為2,3,4,5
實際上,與4中命令作用是一樣的
#chkconfig: 2345 20 80
2345表示系統運行級別是2,3,4或者5時都啟動此服務,20,是啟動的優先級,80是關閉的優先級,如果啟動優先級配置的數太小時如0時,則有可能啟動不成功,因為此時可能其依賴的網絡服務還沒有啟動,從而導致自啟動失敗。