說說rc.local

/etc/rc.d/rc.local彷佛是不少linux系統管理員的偏心,由於凡是須要隨系統自動啓動的服務、程序等,只要系統沒有提供Sys V風格的啓動腳本,就把這些需求都塞到/etc/rc.d/rc.local。
固然,絕大部分狀況下,你會發現這一切都工做得很正常,看上去也很美好。不過,當你遇到了一些詭異的問題的時候,也許你應該好好的去看看/etc/rc.d/rc.local裏都寫了什麼了?
雖然/etc/rc.d/rc.local 的描述是你能夠把你須要的自動啓動的程序放到這裏,不過那僅僅只是限於沒有別的地方能夠放置了,或者說系統也沒有提供其餘辦法了,咱們才這麼幹,然而實際上,我碰到的不少/etc/rc.d/rc.local裏放置的內容,其實系統提供了更好的處理方式:
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
這樣的語句,實際上,系統也提供了它正確放置的位置,只不過這個文件默認不會存在,你之須要看看/etc/init.d/network這個腳本就知道了,它除了會把網卡帶起來之外,還會去檢查是否存在/etc/sysconfig/static-routes文件,若是有,則添加這些文件裏記錄的靜態路由,其格式很簡單,好比上面的兩條語句換成static-routes要求的格式就是:
any -net 192.168.1.0 netmask 255.255.255.0 gw 10.224.0.254
any -host 192.168.100.1  gw  10.244.0.254
3)修改設備權限信息:對於有udev功能的核心來講,修改設備的屬性,權限等,應該去找對應rules文件,在那些文件裏去作對應的修改。
4 )  其餘須要運行的程序:仍是本身寫一個簡單的符合LSB標準的啓動腳本吧,這樣系統可以幫你正確的啓動而且正確的中止改服務,特別是正確的中止服務,而不是由系統簡單發出kill -9 的方式。
上述這樣的作法,其主要的目的就是要可以讓服務按照正確的順序依照正確的方式啓動和中止,這樣可以給你消除一些隱藏的問題。
固然,若是你係統一直都是正常工做的,並且/etc/rc.d/rc.local也又大量的腳本行,那也許你還不能體會我爲何要說上面這些話了。
相關文章
相關標籤/搜索