centos6.5下etc/rc.d/命令解釋
1. /etc/rc.local這是使用者自訂開機啟動程式,把需要開機自動啟動並執行程式寫在這個指令碼裡,在完成 run level 3 的服務啟動後,如果我還有其他的動作想要完成時,舉例來說, 我還想要寄一封 mail 給某個系統管理帳號,通知他,系統剛剛重新開機完畢,那麼,是否應該要製作一個 shell script 放置在 /etc/rc.d/init.d/ 裡面,然後再以連結方式連結到 /etc/rc.d/rc3.d/ 裡面呢?呵呵!當然不需要!/etc/rc.d/rc.local 這個檔案就可以執行您自己想要執行的系統指令了。
也就是說,我有任何想要在開機時就進行的工作時,直接將他寫入 /etc/rc.local , 那麼該工作就會在開機的時候自動被載入喔!而不必等我們登入系統去啟動呢!是否很方便啊!一般來說,鳥哥就很喜歡把自己製作的 shell script 完整檔名寫入 /etc/rc.d/rc.local ,如此一來,開機就會將我的 shell script 執行過,真是好棒那!
--------引用----------------------
也就是說,在linux啟動的最後階段,系統會執行存於rc.local中的命令。和windows裡面的“啟動”菜單有點像
使用方式:
1)oracle等伺服器的啟動:如果你需要你的oracle可以隨著系統一起啟動,你可以去看看/etc/oratab這個檔案,然後去瞭解它,你就會發現這裡才是它正確的位置所在
2)靜態路由: 對於需要增加大量的不是本網段的路由時,很多人喜歡在/etc/rc.d/rc.local裡添加類似
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.224.0.251
route add -host 192.168.100.1 gw 10.224.0.251
2. /etc/init.d
這個目錄存放的是一些指令碼,一般是以rpm包安裝時設定的一些服務的啟動指令碼。系統在安裝時裝了好多rpm包,這裡面就有很多對應的指令碼。執行這些指令碼可以用來啟動,停止,重啟這些服務。舉個例子來說,如果你要重新啟動 sendmail 的話,而且你的 sendmail 是以 rpm 來安裝的,那麼下達 /etc/rc.d/init.d/sendmail restart 就可以直接啟動 sendmail 囉!
前面說到,/etc/rc.d/init.d這個目錄下的指令碼就類似與windows中的註冊表,在系統啟動的時候執行。程式運行到這裡(init進程讀取了運行層級), 是該運行init.d裡的指令碼了,但是並不是直接運行,而是有選擇的因為系統並不需要啟動所有的服務。
那麼,系統是如何選擇哪些需要啟動哪些不要呢?這時剛才說的運行層級就起作用了。在決定了系統啟動的run level之後,/etc/rc.d/rc這個指令碼先執行。知道了運行層級之後,對於每一個運行層級,在rc.d下都有一個子目錄分別是rc0.d,rc1.d ….. rc6.d。每個目錄下都是到init.d目錄的一部分指令碼一些連結。每個層級要執行哪些服務就在相對應的目錄下,比如層級5要啟動的服務就都放在rc5.d下,但是放在這個rc5.d下的都是一些連結檔案,連結到init.d中相對應的檔案,真正幹活到init.d裡的指令碼。
rc.d的內容如下:
init.d/ :各種伺服器和程式的二進位檔案存放目錄。
rc(x).d/: 各個啟動層級的執行程式串連目錄。裡頭的東西都是指向init.d/的一些軟串連。具體的後邊敘述。
還有三個指令碼:rc.sysinit, rc, rc.local
centos的啟動方式和執行次序是:
載入核心
執行init程式
/etc/rc.d/rc.sysinit # 由init執行的第一個指令碼
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL為預設的運行模式
/etc/rc.d/rc.local
/sbin/mingetty # 等待使用者登入
/etc/rc.d/rc.sysinit主要做在各個運行模式中相同的初始化工作,包括:
調入keymap以及系統字型
啟動swapping
設定主機名稱
設定NIS網域名稱
檢查(fsck)並mount檔案系統
開啟quota
裝載音效卡模組
設定系統時鐘
等等。
/etc/rc.d/rc則根據其參數指定的運行模式(運行層級,你在inittab檔案中可以設定)來執行相應目錄下的指令碼。凡是以Kxx開頭的
,都以stop為參數來調用;凡是以Sxx開頭的,都以start為參數來調用。調用的順序按xx
從小到大來執行。例如,假設預設的運行模式是3,/etc/rc.d/rc就會按上述方式調用
/etc/rc.d/rc3.d/下的指令碼。
運行模式2、3、5都把/etc/rc.d/rc.local做為初始化指令碼的最後一個,所以使用者可以自己在這個檔案中添加一些需要在其他初始化工作之後,登入之前執行的命令。