亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

/etc/rc.d/init.d 和 /etc/rc.d目錄介紹

系統(tǒng) 2393 0

本文包括3部分內(nèi)容

  1、 Linux的引導(dǎo)過程

  2、 運(yùn)行級別

  3、 /etc/rc.d/ 與/etc/rc.d/init.d的關(guān)系

?

? ? “/etc/rc.d/init.d/目錄下的腳本就類似與windows中的注冊表,在系統(tǒng)啟動的時候某些指定腳本將被執(zhí)行”。在進(jìn)入init.d之前,我們一起來做兩個準(zhǔn)備工作,linux的引導(dǎo)過程和運(yùn)行級別的概念。

?

一、 Linux的引導(dǎo)過程

?

  系統(tǒng)啟動之后,在進(jìn)入init.d之前,我們先來看看系統(tǒng)都做了什么工作,先看看一個圖

/etc/rc.d/init.d 和 /etc/rc.d目錄介紹

  從這個圖中,我們從比較高的角度去看開始引導(dǎo)的整個過程,比較清晰明了。系統(tǒng)加電之后,首先進(jìn)行的硬件自檢,然后是bootloader對系統(tǒng)的初始化,加載內(nèi)核。

  內(nèi)核被加載到內(nèi)存中之后,就開始執(zhí)行了。一旦內(nèi)核啟動運(yùn)行,對硬件的檢測就會決定需要對哪些設(shè)備驅(qū)動程序進(jìn)行初始化。從這里開始,內(nèi)核就能夠掛裝根文件系統(tǒng)(這個過程類似于Windows識別并存取C盤的過程)。內(nèi)核掛裝了根文件系統(tǒng),并已初始化所有的設(shè)備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)等之后,就通過啟動一個叫init的用戶級程序,完成引導(dǎo)進(jìn)程。

?

二、 運(yùn)行級別(run level)

?

  Init進(jìn)程是系統(tǒng)啟動之后的第一個用戶進(jìn)程,所以它的pid(進(jìn)程編號)始終為1。init進(jìn)程上來首先做的事是去讀取/etc/目錄下inittab文件中initdefault id值,這個值稱為運(yùn)行級別(run-level)。它決定了系統(tǒng)啟動之后運(yùn)行于什么級別。運(yùn)行級別決定了系統(tǒng)啟動的絕大部分行為和目的。這個級別從0到6 ,具有不同的功能。不同的運(yùn)行級定義如下:?

  # 0 - 停機(jī)(千萬別把initdefault設(shè)置為0,否則系統(tǒng)永遠(yuǎn)無法啟動)

  # 1 - 單用戶模式

  # 2 - 多用戶,沒有 NFS

  # 3 - 完全多用戶模式(標(biāo)準(zhǔn)的運(yùn)行級)

  # 4 – 系統(tǒng)保留的

  # 5 - X11 (x window)

  # 6 - 重新啟動 (千萬不要把initdefault 設(shè)置為6,否則將一直在重啟 )

  這是兩個表較常用運(yùn)行級別(后期補(bǔ)上),左圖redhat9 級別3啟動的將是文本界面,右圖fc7級別5啟動的將是圖形界面。

?

三、 /etc/rc.d/與/etc/rc.d/init.d的關(guān)系

?

  寫到這里,應(yīng)該差不多要進(jìn)入init.d了,可是我覺得單寫/etc/rc.d/init.d的話不一定能說得清楚明白,就拿它跟/etc/rc.d這個它上一級的目錄一起來討論,可能比較合適一些,因為他們之間有著千絲萬縷的關(guān)系。

  在這里先解釋一下init.d里面放的都是什么東西。這個目錄存放的是一些腳本,一般是linux以rpm包安裝時設(shè)定的一些服務(wù)的啟動腳本。系統(tǒng)在安裝時裝了好多rpm包,這里面就有很多對應(yīng)的腳本。執(zhí)行這些腳本可以用來啟動,停止,重啟這些服務(wù)。

  前面說到,/etc/rc.d/init.d這個目錄下的腳本就類似與windows中的注冊表,在系統(tǒng)啟動的時候執(zhí)行。程序運(yùn)行到這里(init進(jìn)程讀取了運(yùn)行級別),相信從命名的角度大家也能猜到該運(yùn)行/etc/rc.d/init.d里面的腳本了,不然它為什么也叫init(.d)呢是吧。沒錯,是該運(yùn)行init.d里的腳本了,但是并不是直接運(yùn)行,而是有選擇的因為系統(tǒng)并不需要啟動所有的服務(wù)。

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

?

四、rcn.d(n為數(shù)字)文件名稱介紹

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

?

lrwxrwxrwx. 1 root root 14 10月 29 00:55 K 99rngd -> ../init.d/rngd

lrwxrwxrwx. 1 root root 17 10月 29 00:54 S 01sysstat -> ../init.d/sysstat

?

  1、這些鏈接文件前面為什么會帶一個Kxx或者Sxx呢?

  是這樣的,帶 K的表示停止(Kill)一個服務(wù),S表示開啟(Start)的 意思

?

  2、K和S后面帶的數(shù)字呢?干什么用的

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

?

  3、無意中我發(fā)現(xiàn)同一個服務(wù)帶S的和帶K的鏈接到init.d之后是同一個腳本。我就納悶了,為什么會是執(zhí)行同一個腳本呢?

  這個時候真是S和K的妙用了,原來S和K并不止是用來看起來分的清楚而已。S給和K還分別給init.d下面的腳本傳遞了start和stop的參數(shù)。哦,是這樣的(煥然大悟的樣子,呵呵)!這時我才想起來原來曾經(jīng)無數(shù)用過的/etc/rc.d/init.d/network restart命令。原來傳S時相當(dāng)于執(zhí)行了/etc/rc.d/init.d/xxx start這條命令,當(dāng)然K就相當(dāng)于/etc/rc.d/init.d/xxx stop了

?

?


rc.d的內(nèi)容如下:?

init.d/ :各種服務(wù)器和程序的二進(jìn)制文件存放目錄。?

rcx.d/: 各個啟動級別的執(zhí)行程序連接目錄。里頭的東西都是指向init.d/的一些軟連接。具體的后邊敘述。?

還有三個腳本 :rc.sysinit, rc, rc.local?

?

redhat的啟動方式和執(zhí)行次序是:?

加載內(nèi)核?

執(zhí)行init程序?

/etc/rc.d/rc.sysinit ? ? ? ? ? ?# 由init執(zhí)行的第一個腳本?

/etc/rc.d/rc $RUNLEVEL ? ? ? ? ? # $RUNLEVEL為缺省的運(yùn)行模式?

/etc/rc.d/rc.local ? ? ? ? ? ? ? ? # 類似于開機(jī)啟動運(yùn)行的腳本了

/sbin/mingetty # 等待用戶登錄?

?

?

五、添加服務(wù)

service xxx啟動 /etc/init.d/ 目錄下的xxx腳本

如一個腳本名為 mysvc保存在/etc/init.d/下可以用 service mysvc 運(yùn)行mysvc腳本

echo passed in option $0 $1

?

if [ $1 = "start" ]

then

? ? ? ? echo myservice started........................................

elif [ $1 = "stop" ]

then

? ? ? ? echo myservice stoped........................................

else

? ? ? ? echo myservice not supported option........................................

fi ?www.2cto.com ?

?

[root@localhost init.d]# service mysvc start

passed in option /etc/init.d/mysvc start

myservice started........................................

?

[root@localhost init.d]# service mysvc stop

passed in option /etc/init.d/mysvc stop

myservice stoped........................................

?

[root@localhost init.d]# service mysvc xxx

passed in option /etc/init.d/mysvc xxx

myservice not supported option........................................

?

?

/etc/rc.d/init.d 和 /etc/rc.d目錄介紹


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费国产不卡午夜福在线观看 | 牛牛影视成人午夜影视 | 神马老子不卡视频在线 | 精品国产亚一区二区三区 | 日欧毛片| 国产高清对白国产露脸91 | 欧美性猛交ⅹxxx乱大交免费 | 久热在线视频精品网站 | 深夜在线网站 | 这里只有精品视频在线观看 | 国产免费专区 | 欧美日本俄罗斯一级毛片 | 99久久精品国产片久人 | 深夜免费福利 | 亚洲欧洲久久久精品 | 国内精品久久久久久久影视麻豆 | 中文字幕一区二区三区精彩视频 | 日本成片网| 草久在线视频 | 欧洲成人在线观看 | aa毛片免费全部播放完整 | 亚洲综合久久久久久中文字幕 | 精品日本久久久久久久久久 | 九九精品热线免费观看6 | 涩涩视频网 | 九九国产精品九九 | 亚洲精品欧美精品国产精品 | 伊人天伊人天天网综合视频 | 国产精品视频第一区二区三区 | 久久r视频 | 99视频精品全国免费 | 欧美视频第一区 | 精品亚洲成a人在线播放 | 男人深夜影院 | 四虎官方影库 | 国产成+人欧美+综合在线观看 | 九九99香蕉在线视频网站 | 蕾丝视频永久在线入口香蕉 | 精品无人区乱码一区2区3区 | 久久久久久久国产精品影院 | 国产成人欧美一区二区三区的 |