《鸟哥的Linux私房菜》学习笔记
对于Linux开机启动步骤中,在内核加载完毕进行完硬件检测与驱动程序加载后,主机硬件已经准备就绪了,此时内核会主动调用第一个进程/sbin/init。
/sbin/init最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设置、语系处理、文件系统格式及其他服务的启动。而所有的操作都会通过init的配置文件,即是/etc/inittab来规划。
inittab中重要的设置选项runlevel
- 0 - halt (Do NOT set initdefault to this)(关机)
- 1 - Single user mode
(单用户维护模式,用在系统出问题时的维护) - 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
(类似runlevel3,但无NFS服务) - 3 - Full multiuser mode
(完整含有网络功能的纯文本模式) - 4 - unused(系统保留功能)
- 5 - X11(与runlevel3类似,但加载使用X Window)
- 6 - reboot (Do NOT set initdefault to this)(重新启动)
/etc/inittab
CentOS5.X
# ①
id:5:initdefault:
# ②System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
# ③
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# ④Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# ⑤
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# ⑥Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# ⑦Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
①默认的runlevel,此runlevel为5。
②准备系统软件执行的环境的脚本执行文件。
init执行/etc/rc.d/rc.sysinit文件来准备软件的操作环境。
③各个不同的runlevel,需要启动的服务的script放置路径。
l3:3:wait:/etc/rc.d/rc 3
runlevel3在/etc/rc.d/rc3.d/
④是否允许按下ctrl+alt+del就重新启动的设置选项。
⑤关于不断电系统(UPS)的两个设置,一个是没电时的关机,一个是复电的处理。
⑥tty1~tty6
⑦X window
/etc/inittab文件的语法:[设置选项]:[runlevel]:[init的操作行为]:[命令选项]
init处理流程
- 先取得runlevel即为默认的运行级别;
- 使用使用/etc/rc.d/rc.sysinit进行系统初始化
- 由于runlevel是5,因此只进行
l5:5:wait:/etc/rc.d/rc 5
,其他行则略过。执行对应runlevel下各个服务的启动 - 设置好ctrl+alt+del这组的组合键功能
- 设置不断电系统的pf,pr两种机制
- 启动mingetty的6个终端机
- 最终以/etc/X11/perfdm -nodaemon启动图形界面