busybox的缺省init模式介紹
busybox的缺省init模式
當(dāng)系統(tǒng)沒(méi)有/etc/inittab文件時(shí),它有一套缺省的模式,按下面配置執(zhí)行:
::sysinit:/etc/init.d/rcS
::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
如果busybox檢測(cè)到/dev/console不是串口控制臺(tái),init還要執(zhí)行下面的動(dòng)作:
tty2::askfirst:/bin/sh
tty3::askfirst:/bin/sh
tty4::askfirst:/bin/sh
Busybox init啟動(dòng)過(guò)程分析
它的init進(jìn)程主要進(jìn)行以下工作:
為init進(jìn)程設(shè)置信號(hào)處理進(jìn)程
對(duì)控制臺(tái)進(jìn)行初始化
解析/etc/inittab
在默認(rèn)情況下,Busybox會(huì)運(yùn)行初始化腳本 /etc/init.d/rcS
當(dāng)init進(jìn)程對(duì)控制臺(tái)進(jìn)行初始化完成之后,Busybox會(huì)去檢查/etc/inittab文件是否存在,如果存在,就會(huì)解析該文件并執(zhí)行相應(yīng)的運(yùn)行級(jí)別.
Busybox支持的inittab格式如下所示:
id : runlevel : action : process
這里需要注意的一點(diǎn)是,Busybox所認(rèn)識(shí)的/etc/inittab的格式盡管與Sys V init非常相似,但其中的操作域id具有不同的含義.
Busybox中的id用來(lái)指定啟動(dòng)的控制臺(tái),如果所啟動(dòng)的進(jìn)程不是可以交互的Shell,就可以空著id的操作域不用去填寫(xiě).
注意
不論Busybox是否能找到inittab文件, Busybox下的init進(jìn)行執(zhí)行的第一個(gè)腳本都是/etc/init.d/rcS, 而不是Sys V init結(jié)構(gòu)下執(zhí)行的腳本文件/etc/rc.d/rc.sysinit