etc/init.d目錄是什麼

要想知道/etc/init.d文件夾中放的是什麼東西, 最好先了解/etc/init.d和/etc/rc.d/init.d的關係

這兩個文件夾其實是同一個東西,/etc/init.d是指向/etc/rc.d/init.d的軟鏈接。並且這個東西只有在fedora下面 有,ubuntu下面沒有/etc/rc.d/這個目錄,只有/etc/init.d,openSUSE下面有/etc/rc.d,直接鏈接的/etc /init.d。

並且有時候可以看到rc0.d/這樣的目錄,查看這些目錄裏的文件,ls -l,發現都是軟鏈接。

要想搞明白這裏面的關係就要搞明白Linux的運行級。打開/etc/inittab,裏面應該有註釋,

# 0 – 停機(千萬別把initdefault設置爲0,否則系統永遠無法啓動)
# 1 – 單用戶模式
# 2 – 多用戶,沒有 NFS
# 3 – 完全多用戶模式(標準的運行級)
# 4 – 系統保留的
# 5 – X11 (x window)
# 6 – 重新啓動 (千萬不要把initdefault 設置爲6,否則將一直在重啓 )

不同的運行級,開機啓動的時候會開啓不同的服務,所以當開機以後執行init(pdi爲1,是開機後執行的第一個進程,所有其他進程都是這個進程的後代)這個進程,就會根據不同的運行級開啓不同的默認服務(fedora下是讀取rc.sysinit)。

可以看到rc0.d/這樣的目錄下的腳本前面都帶有S或者K,s就是start,k就是kill。比如說當你從運行級5到3切換的時候,可能就會關掉有些服務,這時候就會執行k開頭的腳本。

並且字母后面會接着數字,表示的是腳本執行的先後順序,數字越小越早執行,很多時候這些執行順序是很重要的,比如要啓動Apache服務,就必須先配置網絡接口,不然一個沒有IP的機子來啓動http服務那豈不是很搞笑…

總結的說,/etc/init.d這個目錄是所有服務的腳本,可以通過執行腳本並且加上參數,開啓關閉或者重啓對應的服務,rc.d/這個目錄的放的應該就 是開機就默認開啓的服務,並且根據系統不同的運行及劃分了不同的rc0.d/這樣的目錄,ubuntu下面的rc0.d/這樣的目錄都是直接放在/etc /下面的。

跟以上這些發行版不同的是,archlinux用的是類似BSD的方式,所有的服務腳本放在/etc/rc.d目錄下(就沒有init.d這個目錄了),放在這個目錄下並不意味之開機就會默認開啓,開機要想默認開啓某項服務,要自己把要開啓的服務添加到/etc /rc.conf的DAEMONS裏面,不過這樣的話就沒有運行級這個概念了,不管系統是哪個運行級起來的,這些服務默認都會開機啓動。

轉載自https://www.iteye.com/blog/asjava-2298472

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章