开机过程中,内核调用的第一个进程是/sbin/init
init进程启动,通过/sbin/init准备系统软件的运行环境,读取/etc/inittab,获取运行级别数值
可以看到/etc/inittab文件里包含id:3:initdefault:

who -r查询运行级别,也可以通过runlevel来查询,只是后者查询的时候会显示两个状态,分别代表上次和本次的runlevel

运行等级一般分为7级
0-关机
1-单用户模式
2-与级别3类似,无nfs服务
3-命令行模式,包含网络功能
4-保留功能
5-桌面模式
6-重启

大部分相关文件都在/etc/rc.d下面
[root@test001 rc.d]# ls
init.d rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rc.sysinit

[root@test001 etc]# ls -al | grep init
drwxr-xr-x. 2 root root 4096 5月 27 19:07 init
lrwxrwxrwx. 1 root root 11 5月 27 19:06 init.d -> rc.d/init.d
-rw-r–r–. 1 root root 884 5月 27 19:10 inittab
lrwxrwxrwx. 1 root root 15 5月 27 19:07 rc.sysinit -> rc.d/rc.sysinit

rc.sysinit系统的初始化,真实目标文件是/etc/rc.d/rc.sysinit

/etc/rcX.d启动的服务,X代表对应的运行级别,真实链接到/etc/rc.d/rcX.d目录
第一个init进程_java

其中K代表停止运行进程,S代表开始进程,K或S后面的数字代表执行的顺序,对于S来说,数值越小越优先执行,K则相反,从高到低执行停止动作。注意最后的S99local

rc3.d下面的脚本链接到/etc/init.d下面的服务脚本去执行
比如S90crond链接到/etc/init.d/crond

/etc/init.d里保存启动与关闭的服务脚本,真实链接到/etc/rc.d/init.d目录。
第一个init进程_java_02

安装完系统后,里面这些一般是系统安装好的软件

一般rc就是代表run control的意思

在init进程初始化后按照获取的运行级别,选择性的运行init.d里的脚本
比如service mysqld start 启动(运行)/etc/init.d/ 目录下的mysqld脚本

调用完了rcX.d里的服务后,调用/etc/rc.d/rc.local,里面自定义要开机启动的服务脚本。
比如要在3或者5上启动某个自定义脚本,不需要分别在rc3.d下或者rc5.d下再分别加链接。
上面的rc3.d里面的最后一条S99local,去执行对应的目标文件

当完成了所有的系统服务的启动后,就会启动终端来等待用户登录,/sbin/mingetty命令用来启动终端,一般默认2345都会执行该命令
所谓的6个tty也是在此设置的