服务器 > 服务器 > Linux

Linux开机启动流程详解 init进程和运行级别怎么理解

62人参与 • 2026-09-29 • Linux

linux 系统启动过程可拆解为 5 个核心阶段,每个阶段均有明确的执行逻辑、配置文件及工具命令。

以下结合教程内容,分阶段解析启动流程,并总结关键命令与方法。

一、linux 启动的 5 个核心阶段

阶段 1:内核引导(kernel boot)

这是系统启动的 “硬件初始化→内核加载” 环节,是操作系统接管硬件的第一步。

  1. bios 自检:计算机通电后,首先执行 bios(基本输入输出系统) 开机自检,检查 cpu、内存、硬盘等硬件是否正常。
  2. 选择启动设备:bios 根据预设的启动顺序(如硬盘、u 盘)定位启动设备,由该设备加载操作系统。
  3. 加载内核文件:操作系统接管硬件后,优先读取 /boot 目录下的内核文件(如 vmlinuz,linux 内核镜像),完成内核初始化

阶段 2:运行 init 进程(初始化进程启动)

1.init 是 linux 系统所有进程的 “祖先”(pid=1),负责启动后续所有守护进程,其类型随系统版本差异而不同。

init 类型适用系统版本核心配置文件
sysv initcentos 5 及之前/etc/inittab
upstartcentos 6/etc/inittab、/etc/init/*.conf
systemdcentos 7 及之后/usr/lib/systemd/system、/etc/systemd/system

2.核心任务:管理运行级别:

运行级别含义注意事项
0系统停机状态不可设为默认级别,否则无法启动
1单用户模式(root 权限)用于系统维护,禁止远程登录
2多用户模式(无 nfs 服务)无网络文件系统支持
3完全多用户模式(有 nfs)登录后进入 命令行模式(服务器常用)
4保留级别系统未使用
5x11 图形模式登录后进入 图形 gui 界面(桌面常用)
6系统重启状态不可设为默认级别,否则无限重启

阶段 3:系统初始化(初始化系统环境)

此阶段通过脚本完成系统基础配置,确保硬件、网络等环境就绪,核心是执行 rc.sysinit 和对应运行级别的启动脚本。

执行 /etc/rc.d/rc.sysinit 脚本:

执行对应运行级别的启动脚本:

以运行级别 5(图形模式)为例,init 执行 l5:5:wait:/etc/rc.d/rc 5,即调用 /etc/rc.d/rc 脚本并传入参数 5。

/etc/rc.d/rc 会扫描 /etc/rc.d/rc5.d/ 目录下的 “链接文件”(实际指向 /etc/rc.d/init.d/ 中的真实脚本):

管理守护进程的工具:用户可通过以下命令自定义启动的守护进程:

阶段 4:建立终端(创建用户登录终端)

系统环境初始化完成后,init 会创建 6 个虚拟终端,供用户登录使用。

终端配置来源:/etc/inittab 中定义 6 个终端的配置,示例如下:

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

...

6:2345:respawn:/sbin/mingetty tty6

阶段 5:用户登录系统

终端就绪后,用户通过身份验证登录系统,支持 3 种登录方式:

命令行登录(最基础):流程:mingetty 显示登录界面 → 用户输入用户名 → login 程序验证身份:

ssh 登录(远程登录):通过 ssh 服务(如 sshd 守护进程)实现远程命令行登录,需提前启动 sshd 服务(可通过 chkconfig sshd on 设置开机启动)。

图形界面登录(可视化):运行级别为 5 时自动启动,登录界面由图形服务(如 gdm、kdm)提供,登录成功后直接进入 kde、gnome 等桌面环境。

二、关键命令与方法总结

1. 运行级别与守护进程管理

命令功能示例
chkconfig配置守护进程在不同运行级别的启动状态chkconfig --list(查看所有守护进程状态)、chkconfig sshd on(设置 sshd 开机启动)
setup图形化配置系统服务(含守护进程)终端输入 setup → 选择 “system services” → 勾选需启动的服务
init [0-6]切换运行级别init 3(切换到命令行模式)、init 5(切换到图形模式)

2. 关机与重启命令

linux 关机需先同步内存数据到硬盘(避免数据丢失),正确流程:sync → 关机 / 重启命令。

命令功能示例
sync将内存数据同步到硬盘终端输入 sync(建议关机前执行 2-3 次)
shutdown关机 / 重启(支持定时)shutdown -h now(立即关机)、shutdown -r +10(10 分钟后重启)、shutdown -h 20:25(20:25 关机)
reboot立即重启等同于 shutdown -r now
halt立即关机等同于 shutdown -h now、poweroff
poweroff立即关机同 halt
init 0切换到运行级别 0(关机)终端输入 init 0
init 6切换到运行级别 6(重启)终端输入 init 6

3. systemd 服务控制(centos 7 及之后)

命令功能示例
systemctl start [服务名]启动服务systemctl start sshd
systemctl stop [服务名]停止服务systemctl stop firewalld
systemctl restart [服务名]重启服务systemctl restart nginx
systemctl enable [服务名]设置服务开机启动systemctl enable mariadb
systemctl status [服务名]查看服务状态systemctl status docker

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

赞 (0)

您想发表意见!!点此发布评论

推荐阅读

matplotlib绘制多图技巧:subplot和subplots方法哪个更好用

09-29

Ubuntu软件安装与彻底卸载的完整指南

09-28

Linux如何查看jar包错误日志及持久化运行jar包

09-28

Linux查看进程用ps -ef还是ps aux?一文看懂区别

09-28

在Linux环境下为Nginx配置HTTPS的完整流程

09-28

Linux skill命令实现按用户或终端批量管理进程的实用指南

09-28

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论