62人参与 • 2026-09-29 • Linux
linux 系统启动过程可拆解为 5 个核心阶段,每个阶段均有明确的执行逻辑、配置文件及工具命令。
以下结合教程内容,分阶段解析启动流程,并总结关键命令与方法。
这是系统启动的 “硬件初始化→内核加载” 环节,是操作系统接管硬件的第一步。
/boot 目录下的内核文件(如 vmlinuz,linux 内核镜像),完成内核初始化/boot(内核文件存放目录)1.init 是 linux 系统所有进程的 “祖先”(pid=1),负责启动后续所有守护进程,其类型随系统版本差异而不同。
| init 类型 | 适用系统版本 | 核心配置文件 |
| sysv init | centos 5 及之前 | /etc/inittab |
| upstart | centos 6 | /etc/inittab、/etc/init/*.conf |
| systemd | centos 7 及之后 | /usr/lib/systemd/system、/etc/systemd/system |
2.核心任务:管理运行级别:
init 通过 “运行级别(runlevel)” 区分启动场景(如服务器 / 桌面),不同级别启动不同 “守护进程(daemon,类似 windows 服务)”。| 运行级别 | 含义 | 注意事项 |
| 0 | 系统停机状态 | 不可设为默认级别,否则无法启动 |
| 1 | 单用户模式(root 权限) | 用于系统维护,禁止远程登录 |
| 2 | 多用户模式(无 nfs 服务) | 无网络文件系统支持 |
| 3 | 完全多用户模式(有 nfs) | 登录后进入 命令行模式(服务器常用) |
| 4 | 保留级别 | 系统未使用 |
| 5 | x11 图形模式 | 登录后进入 图形 gui 界面(桌面常用) |
| 6 | 系统重启状态 | 不可设为默认级别,否则无限重启 |
/etc/inittab(sysv/upstart 核心配置)、/usr/lib/systemd/system(systemd 配置)init 进程由内核自动启动,用户无需手动执行。此阶段通过脚本完成系统基础配置,确保硬件、网络等环境就绪,核心是执行 rc.sysinit 和对应运行级别的启动脚本。
执行 /etc/rc.d/rc.sysinit 脚本:
init 配置文件中 si::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/ 中的真实脚本):
s 开头的链接:执行对应脚本的 start 命令(启动守护进程)。k 开头的链接:若对应进程已运行(通过 /var/lock/subsys/ 下的标志文件判断),先执行 stop 命令停止,再重启(确保运行级别切换时进程同步)。管理守护进程的工具:用户可通过以下命令自定义启动的守护进程:
chkconfig:命令行工具,用于配置守护进程在不同运行级别的启动状态(如 chkconfig --list 查看所有守护进程状态)。setup:图形化工具(需终端支持),通过 “system services” 选项勾选需启动的守护进程。/etc/rc.d/rc.sysinit、/etc/rc.d/rc、/etc/rc.d/rcx.d/(x 为运行级别,如 3、5)、/etc/rc.d/init.d/(真实守护进程脚本目录)chkconfig(管理守护进程启动状态)、setup(图形化配置系统服务)系统环境初始化完成后,init 会创建 6 个虚拟终端,供用户登录使用。
终端配置来源:/etc/inittab 中定义 6 个终端的配置,示例如下:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
...
6:2345:respawn:/sbin/mingetty tty6
2345:表示在运行级别 2、3、4、5 中启动该终端。respawn:若终端进程意外退出,自动重启。/sbin/mingetty:终端启动程序,负责打开终端、设置模式,并显示文本登录界面。终端就绪后,用户通过身份验证登录系统,支持 3 种登录方式:
命令行登录(最基础):流程:mingetty 显示登录界面 → 用户输入用户名 → login 程序验证身份:
/etc/usertty 文件可对特定用户设置登录终端限制(无此文件则无限制)。root:检查 /etc/securetty 文件,仅该文件中登记的终端允许 root 登录(无此文件则允许所有终端)。root:检查 /etc/nologin 文件,若存在则输出文件内容并拒绝登录(用于系统维护)。ssh 登录(远程登录):通过 ssh 服务(如 sshd 守护进程)实现远程命令行登录,需提前启动 sshd 服务(可通过 chkconfig sshd on 设置开机启动)。
图形界面登录(可视化):运行级别为 5 时自动启动,登录界面由图形服务(如 gdm、kdm)提供,登录成功后直接进入 kde、gnome 等桌面环境。
/etc/nologin(非 root 登录限制)、/etc/securetty(root 终端限制)、/etc/usertty(用户终端限制)login(身份验证程序,自动触发,无需手动执行)、sshd(ssh 服务守护进程,启动命令 service sshd start)| 命令 | 功能 | 示例 |
| chkconfig | 配置守护进程在不同运行级别的启动状态 | chkconfig --list(查看所有守护进程状态)、chkconfig sshd on(设置 sshd 开机启动) |
| setup | 图形化配置系统服务(含守护进程) | 终端输入 setup → 选择 “system services” → 勾选需启动的服务 |
| init [0-6] | 切换运行级别 | init 3(切换到命令行模式)、init 5(切换到图形模式) |
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 |
| 命令 | 功能 | 示例 |
| 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 |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论