Linux內核啟動過程中,會掛載文件系統,在文件系統掛載后,運行的第一個程序就是根目錄下的linuxrc,而這是一個指向/bin/busybox 的鏈接,也就是說,系統起來后運行的第一個程序就是busybox本身。
再然后,busybox會解析“/etc/inittab”配置文件,而/etc/inittab配置文件里面會運行/etc/init.d/rcS這個腳本!
腳本命令:for initscript in /etc/init.d/S[0-9][0-9]*
這句話的意思是遍歷/etc/init.d/下的以名稱為S開頭的,緊接著是數字0-9,再緊跟著還是數字0-9,再往后有多少字符不限制的文件。
實際/etc/init.d/rcS/下的內容如下:
也就是說initscript依次為S01udev、S02init_rootfs、S03network、S10Startup
doif [ -x $initscript ] ;thenecho "[RCS]: $initscript"$initscriptfi
done
這段代碼的意思是:依次檢測$initscript,即S01udev、S02init_rootfs、S03network、S10Startup是否可執行,如果可執行,則給出提示,并且執行之;否則不執行
這幾個文件都是加載根文件系統時被添加進來的,所以,如果要修改啟動腳本,必須是在制作根文件系統時,修改這幾個腳本文件。如果在系統啟動后,通過vi /etc/init.d/rcS修改腳本,那么系統重新啟動后,腳本恢復成原來的。
只能通過修改文件系統修改。