上電最先執行/etc/inittab
/etc/inittab檔案每一行包括四個字段:label:runlevel:action:process
label
id用來定義預設的init執行的級別
si是系統初始化的程序
ln其中的n從1~6,指明該程序可以使用的runlevel的級別
ud是公升級程序
ca指明當按下ctrl+alt+del是執行的程序
x是將系統轉入x終端時需要執行的程序
runlevel
0halt
1single-user
2-5multi-user
6reboot
action
boot
只有在引導過程中,才執行該程序,但不等待該程序的結束。當該程序死亡時,也不重新啟動該程序
initdefault
指定系統的預設執行級。系統啟動時,init將首先查詢該登記項,如果存在,init將依據此決定系統最初要進入的執行級。具體來說,init將指定登記項"run_level"欄位中的最大數字(即最高執行級)為當前系統的預設執行級;如果該字段為空,那麼將其解釋為"0123456",並以"6"作為預設執行級。如果不存在該登記項,那麼init將要求使用者在系統啟動時指定乙個最初的執行級
off如果相應的程序正在執行,那麼就發出乙個告警訊號,等待20秒後,再通過關閉訊號強行終止該程序。如果相應的程序並不存在,那麼就忽略該登記項
respawn
如果相應的程序還不存在,那麼init就啟動該程序,同時不等待該程序的結束就繼續掃瞄/etc/inittab檔案;當該程序終止時,init將重新啟動該程序。如果相應的程序已經存在,那麼init將忽略該登記項並繼續掃瞄/etc/inittab檔案
askfirst
和respawn的唯一區別是,在執行這個程序前,需要按下entr鍵確認
sysinit
只有在啟動或重新啟動系統並首先進入單使用者模式時,init才執行這些登記項。而在系統從執行級1~6進入單使用者模式時,init並不執行這些登記項。"action"欄位為"sysinit"的登記項在"run_level"欄位不指定任何執行級
wait
啟動程序並等待其結束,然後再處理/etc/inittab檔案中的下乙個登記項
ctrlaltdel
使用者在控制台鍵盤上按下ctrl+alt+del組合鍵時,允許init重新啟動系統。注意,如果該系統放在乙個公共場所,系統管理員可將ctrl+alt+del組合鍵配置為其他行為,比如忽略等
分析inittab
rc_mxc.s:id:5:initdefault
//定義系統的執行級別是5
si::sysinit:/etc/init.d/rcs
//初始化程序,執行rcs指令碼
~~:s:wait:/sbin/sulogin
//這條語句可以讓系統在重新啟動、進入單使用者模式的時候提示輸入超級使用者密碼。s同執行等級1,並等待其結束,然後再處理/etc/inittab檔案中的下乙個登記項。暫時不知道這有啥用,先注釋掉了
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
//initdefault定義的執行級別是5,將會執行/etc/init.d/rc,其中傳進來的引數是5,稍後也會執行/etc/rc5.d/下的指令碼
l6:6:wait:/etc/init.d/rc 6
z6:6:respawn:/sbin/sulogin
//指令碼執行等級為6時才執行,此時不會執行這個命令
mxc::respawn:/etc/init.d/rc_mxc.s
//執行rc_mxc.s,這個指令碼其實是執行登陸程式,如下
1:2345:respawn:/sbin/getty 38400 tty1
//已經執行了登陸程式,這條命令實際不會執行,可以注釋掉
#!/bin/bashif grep -sq ttymxc0 /proc/cmdline; then
/sbin/getty -l ttymxc0 115200 vt100
elif grep -sq ttymxc1 /proc/cmdline; then
/sbin/getty -l ttymxc1 115200 vt100
elif grep -sq ttymxc2 /proc/cmdline; then
/sbin/getty -l ttymxc2 115200 vt100
elif grep -sq ttymxc3 /proc/cmdline; then
/sbin/getty -l ttymxc3 115200 vt100
else
sleep 100000
fi
Linux init命令詳解
一 什麼是init init是linux系統操作中不可缺少的程式之一。所謂的init程序,它是乙個由核心啟動的使用者級程序。核心自行啟動 已經被載入記憶體,開始執行,並已初始化所有的裝置驅動程式和資料結構等 之後,就通過啟動乙個使用者級程式init的方式,完成引導程序。所以,init始終是第乙個程序...
Linux init程序詳解
一 什麼是init init是linux系統操作中不可缺少的程式之一。所謂的init程序,它是乙個由核心啟動的使用者級程序。核心自行啟動 已經被載入記憶體,開始執行,並已初始化所有的裝置驅動程式和資料結構等 之後,就通過啟動乙個使用者級程式init的方式,完成引導程序。所以,init始終是第乙個程序...
Linux init執行級別
執行級就是作業系統當前正在執行的功能級別。這個級別從1到6 具有不同的功能。不同的執行級定義如下 參考red hat linux 裡面的 etc inittab 0 停機 千萬不能把initdefault 設定為0 1 單使用者模式 2 多使用者,沒有 nfs 3 完全多使用者模式 標準的執行級 4...