關於/etc/rc.local以及/etc/init.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 吧? 這個檔案就可以執行您自己想要執行的系統指令了。像不像早期 DOS 年代的 autoexec.bat 與 config.sys 呢? ^_^
  也就是說,我有任何想要在開機時就進行的工作時,直接將他寫入 /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  
       這個目錄存放的是一些腳本,一般是linux以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這個腳本先執行。在RH9和FC7的源碼中它都是一上來就check_runlevel()(雖然實現的代碼不一樣,也大同小異),知道了運行級別之後,對於每一個運行級別,在rc.d下都有一個子目錄分別是rc0.d,rc1.d ….. rc6.d。每個目錄下都是到init.d目錄的一部分腳本一些鏈接。每個級別要執行哪些服務就在相對應的目錄下,比如級別5要啓動的服務就都放在rc5.d下,但是放在這個rc5.d下的都是一些鏈接文件,鏈接到init.d中相對應的文件,真正幹活到init.d裏的腳本。

 

 

linux /etc/rc.d/目錄的詳解

rc.d的內容如下: 
init.d/ :各種服務器和程序的二進制文件存放目錄。 
rcx.d/: 各個啓動級別的執行程序連接目錄。裏頭的東西都是指向init.d/的一些軟連接。具體的後邊敘述。 
還有三個腳本:rc.sysinit, rc, rc.local

redhat的啓動方式和執行次序是: 
加載內核 
執行init程序 
/etc/rc.d/rc.sysinit # 由init執行的第一個腳本 
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL爲缺省的運行模式 
/etc/rc.d/rc.local 
/sbin/mingetty # 等待用戶登錄

在Redhat中,/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/下的腳本。 
值得一提的是,Redhat中的運行模式2、3、5都把/etc/rc.d/rc.local做爲初始化腳本中 
的最後一個,所以用戶可以自己在這個文件中添加一些需要在其他初始化工作之後,登錄之前執行的命令。

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