主頁(yè) > 知識(shí)庫(kù) > /etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系介紹

/etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系介紹

熱門標(biāo)簽:外呼系統(tǒng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 美團(tuán) 解決方案 電話機(jī)器人搭建 服務(wù)器配置 硅谷的囚徒呼叫中心 家政服務(wù)網(wǎng)絡(luò)
前面說到,/etc/rc.d/init.d這個(gè)目錄下的腳本就類似與windows中的注冊(cè)表,在系統(tǒng)啟動(dòng)的時(shí)候執(zhí)行。程序運(yùn)行到這里(init進(jìn)程讀取了運(yùn)行級(jí)別),相信從命名的角度大家也能猜到該運(yùn)行/etc/rc.d/init.d里面的腳本了,不然它為什么也叫init(.d)呢是吧。沒錯(cuò),是該運(yùn)行init.d里的腳本了,但是并不是直接運(yùn)行,而是有選擇的,因?yàn)橄到y(tǒng)并不需要啟動(dòng)所有的服務(wù)。


復(fù)制代碼
代碼如下:

[jianbao@localhost rc.d]$ pwd
/etc/rc.d
[jianbao@localhost rc.d]$ ll
drwxr-xr-x. 2 root root 4096 5月 2 14:53 init.d
-rwxr-xr-x. 1 root root 2617 6月 23 2012 rc
drwxr-xr-x. 2 root root 4096 5月 2 14:53 rc0.d
drwxr-xr-x. 2 root root 4096 5月 2 14:53 rc1.d
drwxr-xr-x. 2 root root 4096 5月 2 14:53 rc2.d
drwxr-xr-x. 2 root root 4096 5月 2 15:35 rc3.d
drwxr-xr-x. 2 root root 4096 5月 2 14:53 rc4.d
drwxr-xr-x. 2 root root 4096 5月 2 14:53 rc5.d
drwxr-xr-x. 2 root root 4096 5月 2 14:53 rc6.d
-rwxr-xr-x. 1 root root 220 6月 23 2012 rc.local
-rwxr-xr-x. 1 root root 19370 6月 23 2012 rc.sysinit
[jianbao@localhost rc.d]$


那么,系統(tǒng)是如何選擇哪些需要啟動(dòng)哪些不要呢?這時(shí)剛才說的運(yùn)行級(jí)別就起作用了。
在決定了系統(tǒng)啟動(dòng)的run level之后,先執(zhí)行 /etc/rc.d/rc 這個(gè)腳本。在CentOS6.X的源碼中它都是一上來就check_runlevel(),知道了運(yùn)行級(jí)別之后,對(duì)于每一個(gè)運(yùn)行級(jí)別,在rc.d下都有一個(gè)子目錄分別是rc0.d,rc1.d ….. rc6.d。每個(gè)目錄下都是到init.d目錄的一部分腳本的一些鏈接。每個(gè)級(jí)別要執(zhí)行哪些服務(wù)就在相對(duì)應(yīng)的目錄下,比如級(jí)別5要啟動(dòng)的服務(wù)就都放在 rc5.d下,但是放在這個(gè)rc5.d下的都是一些鏈接文件,鏈接到init.d中相對(duì)應(yīng)的文件,真正干活的是init.d里的腳本。


復(fù)制代碼
代碼如下:

[jianbao@localhost rc5.d]$ pwd
/etc/rc.d/rc5.d
[jianbao@localhost rc5.d]$ ll
lrwxrwxrwx. 1 root root 16 4月 11 14:52 K01smartd -> ../init.d/smartd
lrwxrwxrwx. 1 root root 17 4月 11 14:40 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx. 1 root root 17 4月 11 14:52 K05wdaemon -> ../init.d/wdaemon
lrwxrwxrwx. 1 root root 16 4月 11 14:52 K10psacct -> ../init.d/psacct
lrwxrwxrwx. 1 root root 19 4月 11 14:40 K10saslauthd -> ../init.d/saslauthd
lrwxrwxrwx. 1 root root 15 4月 11 14:40 K15httpd -> ../init.d/httpd
lrwxrwxrwx. 1 root root 13 4月 11 14:44 K60nfs -> ../init.d/nfs
lrwxrwxrwx. 1 root root 20 4月 11 14:44 K69rpcsvcgssd -> ../init.d/rpcsvcgssd
lrwxrwxrwx. 1 root root 16 4月 11 14:55 K73ypbind -> ../init.d/ypbind
lrwxrwxrwx. 1 root root 14 4月 11 15:11 K74ntpd -> ../init.d/ntpd
lrwxrwxrwx. 1 root root 17 4月 11 14:40 K75ntpdate -> ../init.d/ntpdate
lrwxrwxrwx. 1 root root 24 4月 11 14:40 S23NetworkManager -> ../init.d/NetworkManager
lrwxrwxrwx. 1 root root 21 4月 11 16:27 S30vboxadd-x11 -> ../init.d/vboxadd-x11
lrwxrwxrwx. 1 root root 25 4月 11 16:27 S35vboxadd-service -> ../init.d/vboxadd-service
lrwxrwxrwx. 1 root root 19 4月 11 14:49 S50bluetooth -> ../init.d/bluetooth
lrwxrwxrwx. 1 root root 14 4月 11 14:52 S55sshd -> ../init.d/sshd
lrwxrwxrwx. 1 root root 13 4月 11 14:39 S95atd -> ../init.d/atd
lrwxrwxrwx. 1 root root 15 5月 2 14:53 S95jexec -> ../init.d/jexec
lrwxrwxrwx. 1 root root 20 4月 11 14:40 S99certmonger -> ../init.d/certmonger
lrwxrwxrwx. 1 root root 11 4月 11 14:39 S99local -> ../rc.local
[jianbao@localhost rc5.d]$


到這里,估計(jì)大家可能都比較清楚了,我開始也以為是這樣的。可是后來我仔細(xì)看過和比較這些鏈接文件和init.d里真正被執(zhí)行的腳本的文件名之后,一直有幾個(gè)問題沒弄明白。借著寫這個(gè)文章的機(jī)會(huì),我做了一些功課,總算是大概解開了那些疑惑。

1、這些鏈接文件前面為什么會(huì)帶一個(gè)Kxx或者Sxx呢?
是這樣的,帶K的表示停止(Kill)一個(gè)服務(wù),S表示開啟(Start)的意思

2、K和S后面帶的數(shù)字呢?干什么用的?
這個(gè)我開始的時(shí)候還以為是排列起來好看或者數(shù)數(shù)用呢(是不是很幼稚?)。后來發(fā)現(xiàn)不是的。它的作用是用來排序,就是決定這些腳本執(zhí)行的順序,數(shù)值小的先執(zhí)行,數(shù)值大的后執(zhí)行。很多時(shí)候這些執(zhí)行順序是很重要的,比如要啟動(dòng)Apache服務(wù),就必須先配置網(wǎng)絡(luò)接口,不然一個(gè)沒有IP的機(jī)子來啟動(dòng)http服務(wù)那豈不是很搞笑。。。

3、無意中我發(fā)現(xiàn)同一個(gè)服務(wù)帶S的和帶K的鏈接到init.d之后是同一個(gè)腳本。我就納悶了,為什么會(huì)是執(zhí)行同一個(gè)腳本呢?
這個(gè)時(shí)候真是S和K的妙用了,原來S和K并不止是用來看起來分的清楚而已。S給和K還分別給init.d下面的腳本傳遞了start和stop的參數(shù)。哦,是這樣的(煥然大悟的樣子,呵呵)!這時(shí)我才想起來原來曾經(jīng)無數(shù)用過的/etc/rc.d/init.d/network restart命令。原來傳S時(shí)相當(dāng)于執(zhí)行了/etc/rc.d/init.d/xxx start這條命令,當(dāng)然K就相當(dāng)于/etc/rc.d/init.d/xxx stop了。

補(bǔ)充:也可以修改rc.local達(dá)到自啟動(dòng)的目的,但是rc.local是最后執(zhí)行的自啟動(dòng)配置文件。

標(biāo)簽:烏蘭察布 北海 韶關(guān) 撫州 邢臺(tái) 防城港 南昌 臨沂

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《/etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系介紹》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266