init是 Linux 系统中至关重要的进程之一,它是操作系统启动后由内核运行的第一个用户级进程(PID=1),负责启动和管理系统中的其他所有进程。
init [运行级别]
Linux 定义了 7 种标准运行级别:
| 运行级别 | 描述 | 常见用途 |
|---|---|---|
| 0 | 关机 | 关闭系统电源 |
| 1 | 单用户模式 | 用于系统维护/管理员权限 |
| 2 | 多用户模式(无NFS) | 基础多用户环境 |
| 3 | 完整多用户模式 | 标准终端界面 |
| 4 | 保留 | 自定义用途 |
| 5 | 图形界面模式 | 带GUI的多用户环境 |
| 6 | 重启 | 重新启动系统 |
who -r
# 或者
runlevel
init 3 # 切换至命令行多用户模式
init 5 # 进入图形化界面
init 0 # 关闭系统
init 6 # 重启设备
传统初始化机制,依赖/etc/inittab配置文件
# 典型inittab配置示例
id:3:initdefault: # 默认启动级别
si::sysinit:/etc/rc.d/rc.sysinit # 系统初始化脚本路径
基于事件触发的初始化系统
从图形界面切换到终端模式
init 3
确认服务变化后返回图形界面
init 5
进入单用户模式
init 1
进行磁盘检查
fsck /dev/sda1
问
:为什么我的系统找不到/etc/inittab?
答:采用systemd的系统已不再使用inittab,配置方法已更新
问:如何修改默认运行级别?
对于systemd系统:
systemctl set-default multi-user.target # 类似于运行级别3
问:init和shutdown命令有何区别?
两者最终都会关机,但shutdown提供了更多功能(如定时关机、通知用户等)