讓Linux系統啟動過程自動執行自己編寫的指令碼
阿新 • • 發佈:2018-10-31
在Linux系統,/etc路徑下,一般有以下目錄:
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
在系統啟動的過程中,會按照rc0.d~rc6.d的順序執行這些目錄下的指令碼,如果想要系統啟動過程中執行自己編寫的指令碼,只需要將指令碼名字改為Sxxx.sh,放到上面的任意目錄下即可。
之前在這幾篇文章中:
http://blog.csdn.net/keheinash/article/details/50641090
http://blog.csdn.net/keheinash/article/details/50642822
http://blog.csdn.net/keheinash/article/details/50674428
描述了利用指令碼設定NFS共享目錄以及對特定程序進行記憶體使用監測的實現。結合上面系統啟動過程自動執行指令碼的方法,我們可以讓系統在啟動時自動執行幾個指令碼。
/home/root/NetWorkCP.sh & # NetWorkCP實現設定NFS共享目錄的功能
/home/root/monitor.sh & # monitor實現監測特定程序記憶體使用情況的功能
將這兩條命令直接寫在指令碼中,並將指令碼命名為Sxxx.sh,放到/etc/rc#.d下即可。
&代表使用後臺執行的方式執行,採用後臺執行/home/root下的兩個指令碼的方式是因為Sxxx.sh在OS啟動過程中執行,如果執行的兩個指令碼發生問題,沒有辦法完成執行,會導致核心無法載入完成。這也是為什麼不把這兩個指令碼直接放到/etc/rc#.d下的原因,如果指令碼的執行出錯,發生了阻塞,會導致系統無法啟動成功。
注意:最好是把指令碼放到/etc/rc6.d下,因為你的指令碼的某些操作(如上面例子裡的設定NFS,涉及網絡卡的操作),可能需要系統在啟動過程中載入了某些模組後才能起作用。如果放在比較早執行的目錄下,可能會出現執行失敗的情況。