chkconfig命令可以用來(lái)檢查、設(shè)置系統(tǒng)的各種服務(wù)
使用語(yǔ)法:
chkconfig [--add][--del][--list][系統(tǒng)服務(wù)] 或 chkconfig [--level 等級(jí)代號(hào)>][系統(tǒng)服務(wù)][on/off/reset]
參數(shù)用法:
--addà增加所指定的系統(tǒng)服務(wù),讓chkconfig指令得以管理它,并同時(shí)在系統(tǒng)啟動(dòng)的敘述文件內(nèi)增加相關(guān)數(shù)據(jù)。
--delà刪除所指定的系統(tǒng)服務(wù),不再由chkconfig指令管理,并同時(shí)在系統(tǒng)啟動(dòng)的敘述文件內(nèi)刪除相關(guān)數(shù)據(jù)。
--level等級(jí)代號(hào)>à指定讀系統(tǒng)服務(wù)要在哪一個(gè)執(zhí)行等級(jí)中開(kāi)啟或關(guān)畢。
使用范例:
chkconfig --list 列出所有的系統(tǒng)服務(wù)
chkconfig --add httpd 增加httpd服務(wù)
chkconfig --del httpd 刪除httpd服務(wù)
chkconfig --level httpd 2345 on 把httpd在運(yùn)行級(jí)別為2、3、4、5的情況下都是on(開(kāi)啟)的狀態(tài)。
chkconfig命令提供了一種簡(jiǎn)單的方式來(lái)設(shè)置一個(gè)服務(wù)的運(yùn)行級(jí)別。例如,為了設(shè)置MySQL服務(wù)器在運(yùn)行級(jí)別3和4上運(yùn)行,你必須首先將MySQL添加為受chkconfig管理的服務(wù):
chkconfig --add mysql
現(xiàn)在,我們?cè)诩?jí)別3和5上設(shè)定服務(wù)為“on”
chkconfig --level 35 mysql on
在其他級(jí)別上設(shè)為off
chkconfig --level 01246 mysql off
為了確認(rèn)你的配置被正確的修改了,我們可以列出服務(wù)將會(huì)運(yùn)行的運(yùn)行級(jí)別,如下所示:
#chkconfig --list mysql
mysql 0:off 1:off 2:off 3:on 4:off 5:on 6:off
Chkconfig命令用來(lái)設(shè)置,查看或更改配置開(kāi)機(jī)自動(dòng)啟動(dòng)的服務(wù)。下面根據(jù)七個(gè)實(shí)用的實(shí)例來(lái)說(shuō)明Chkconfig命令的使用方法。
1、用Shell腳本檢測(cè)服務(wù)系統(tǒng)啟動(dòng)項(xiàng)狀態(tài)
當(dāng)你只用服務(wù)名執(zhí)行chkconfig命令時(shí),如果該服務(wù)已經(jīng)配置到系統(tǒng)啟動(dòng)項(xiàng)即返回真。下面的代碼段是用來(lái)檢查一個(gè)服務(wù)是否已經(jīng)配置開(kāi)機(jī)啟動(dòng)。
# vi check.sh
chkconfig network echo "Network service is configured"
chkconfig junk echo "Junk service is configured"
# ./check.sh
Network service is configured
你也可以指定檢查該服務(wù)是否配置到指定的運(yùn)行級(jí)。
# vi check1.sh
chkconfig network --level 3 echo "Network service is configured for level 3"
chkconfig network --level 1 echo "Network service is configured for level 1"
# ./check1.sh
Network service is configured for level 3
2、查看當(dāng)前服務(wù)系統(tǒng)啟動(dòng)項(xiàng)的狀態(tài)
–list選項(xiàng)用來(lái)顯示當(dāng)前所有服務(wù)的系統(tǒng)啟動(dòng)項(xiàng)狀態(tài)。
# chkconfig --list
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
...
可以使用grep過(guò)濾顯示指定條件的服務(wù)。
下面的命令表示只顯示運(yùn)行級(jí)為3的服務(wù)。
chkconfig --list | grep 3:on
下面的命令表示只顯示network服務(wù)的啟動(dòng)項(xiàng)狀態(tài)。
chkconfig --list | grep network
3、添加一個(gè)新服務(wù)到啟動(dòng)項(xiàng)
使用–add選項(xiàng)來(lái)添加一個(gè)指定服務(wù)到系統(tǒng)啟動(dòng)服務(wù)列表。
下面的例子說(shuō)明如何添加一個(gè)新服務(wù)(如iptables)到需要開(kāi)機(jī)啟動(dòng)的服務(wù)列表。“chkconfig –add”命令也會(huì)自動(dòng)地開(kāi)啟運(yùn)行級(jí)2,3,4和5,如下:
# chkconfig --list | grep iptables
# chkconfig --add iptables
# chkconfig --list | grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4、從系統(tǒng)啟動(dòng)項(xiàng)列表刪除一個(gè)服務(wù)
下面的例子表明ip6tables已經(jīng)配置到啟動(dòng)項(xiàng)。
# chkconfig --list | grep ip6tables
ip6tables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
使用–del選項(xiàng)從啟動(dòng)列表刪除它。
# chkconfig --del ip6tables
# chkconfig --list | grep ip6tables
5、為服務(wù)開(kāi)啟或關(guān)閉選定的運(yùn)行級(jí)
有時(shí)候你可能不想從啟動(dòng)列表中刪除整個(gè)服務(wù),然而你可能僅僅想關(guān)閉指定的運(yùn)行級(jí)。
下面的例子是為nfserver服務(wù)關(guān)閉運(yùn)行級(jí)5.
# chkconfig --level 5 nfsserver off
你也可以同時(shí)關(guān)閉多個(gè)運(yùn)行級(jí),下面是關(guān)閉3和5運(yùn)行級(jí)。
# chkconfig --level 35 nfsserver off
6、rc.d子目錄下的腳本文件
無(wú)論你什么時(shí)候使用chkconfig命令添加或刪除一個(gè)服務(wù),它都會(huì)在/etc/rc.d子目錄執(zhí)行某些動(dòng)作。
當(dāng)chkconfig –add命令被執(zhí)行,它會(huì)在對(duì)應(yīng)的rc目錄創(chuàng)建一個(gè)符合鏈接文件來(lái)啟動(dòng)和停止服務(wù)。
當(dāng)chkconfig –del命令被執(zhí)行,它會(huì)在對(duì)應(yīng)的rc目錄刪除相應(yīng)的符號(hào)鏈接。
下面的例子表明xinetd服務(wù)已經(jīng)開(kāi)啟運(yùn)行級(jí)3和5,所以xinetd會(huì)有兩個(gè)文件在rc3.d目錄和兩個(gè)文件在rc5.d目錄。以K開(kāi)頭的文件關(guān)機(jī)的時(shí)候用(K表示kill)。以S開(kāi)頭的文件開(kāi)機(jī)的時(shí)候用(S表示start)。
# chkconfig --list | grep xinetd
xinetd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
xinetd based services:
# cd /etc/rc.d/rc3.d
# ls | grep xinetd
K08xinetd
S14xinetd
# cd /etc/rc.d/rc5.d
# ls | grep xinetd
K08xinetd
S14xinetd
7、添加操作使rcx.d目錄的變化
當(dāng)你通過(guò)chkconfig命令添加一個(gè)新服務(wù),默認(rèn)的運(yùn)行級(jí)會(huì)自動(dòng)地為該服務(wù)開(kāi)啟,并且會(huì)在對(duì)應(yīng)的rcx目錄創(chuàng)建文件。
例如,如果nfsserver服務(wù)沒(méi)有在啟動(dòng)項(xiàng)列表中,那nfsserver服務(wù)就沒(méi)有文件在/etc/rc.d/rc*.d目錄下。
# chkconfig --list | grep nfsserver
nfsserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# ls /etc/rc.d/rc3.d | grep nfsserver
# ls /etc/rc.d/rc5.d | grep nfsserver
當(dāng)你添加nfsserver服務(wù)之后,你將會(huì)在這些目錄下看到符號(hào)鏈接。
# chkconfig --add nfsserver
nfsserver 0:off 1:off 2:off 3:on 4:off 5:on 6:off
# cd /etc/rc.d/rc3.d
# ls -l | grep nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver
# cd /etc/rc.d/rc5.d
# ls -l | grep nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../nfsserver
lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver
當(dāng)你使用–del或–level選項(xiàng)來(lái)關(guān)閉服務(wù),在rcx.d目錄下對(duì)應(yīng)的符號(hào)鏈接文件將會(huì)被刪除。
# chkconfig --level 5 nfsserver off
# ls /etc/rc.d/rc5.d | grep nfsserver