溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

/etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系是什么

發(fā)布時(shí)間:2021-07-24 11:48:48 來(lái)源:億速云 閱讀:383 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹“/etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系是什么”,在日常操作中,相信很多人在/etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”/etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

前面說(shuō)到,/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)呢是吧。沒(méi)錯(cuò),是該運(yùn)行init.d里的腳本了,但是并不是直接運(yùn)行,而是有選擇的,因?yàn)橄到y(tǒng)并不需要啟動(dòng)所有的服務(wù)。


代碼如下:


[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í)剛才說(shuō)的運(yùn)行級(jí)別就起作用了。
在決定了系統(tǒng)啟動(dòng)的run level之后,先執(zhí)行 /etc/rc.d/rc 這個(gè)腳本。在CentOS6.X的源碼中它都是一上來(lái)就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里的腳本。


代碼如下:


[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ì)大家可能都比較清楚了,我開(kāi)始也以為是這樣的??墒呛髞?lái)我仔細(xì)看過(guò)和比較這些鏈接文件和init.d里真正被執(zhí)行的腳本的文件名之后,一直有幾個(gè)問(wèn)題沒(méi)弄明白。借著寫這個(gè)文章的機(jī)會(huì),我做了一些功課,總算是大概解開(kāi)了那些疑惑。

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

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

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

到此,關(guān)于“/etc/rc.d/rc與/etc/rc.d/init.d的關(guān)系是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI