
Linux init 命令
什么是 init 命令
init是 Linux 系统中至关重要的进程之一,它是操作系统启动后由内核运行的第一个用户级进程(PID=1),负责启动和管理系统中的其他所有进程。
核心特点
- 进程控制:作为所有进程的根进程
- 运行状态管理:控制系统不同运行模式
- 服务调度:加载和关闭系统服务
- 初始化操作:执行开机脚本和设置参数
init 命令的基本格式
init [运行级别]
运行级别说明
Linux 定义了 7 种标准运行级别:
| 运行级别 | 描述 | 常见用途 |
|---|---|---|
| 0 | 关机 | 关闭系统电源 |
| 1 | 单用户模式 | 用于系统维护/管理员权限 |
| 2 | 多用户模式(无NFS) | 基础多用户环境 |
| 3 | 完整多用户模式 | 标准终端界面 |
| 4 | 保留 | 自定义用途 |
| 5 | 图形界面模式 | 带GUI的多用户环境 |
| 6 | 重启 | 重新启动系统 |
init 命令的实际用法
1. 查看当前运行状态
示例
who -r
# 或者
runlevel
2. 更改运行级别
示例
init 3 # 切换至命令行多用户模式
init 5 # 进入图形化界面
init 0 # 关闭系统
init 6 # 重启设备
3. 应急处理方式
示例
init 1 # 进入单用户维护模式(需root权限)
现代Linux系统中的init发展
1. System V init
传统初始化机制,依赖/etc/inittab配置文件
示例
# 典型inittab配置示例
id:3:initdefault: # 默认启动级别
si::sysinit:/etc/rc.d/rc.sysinit # 系统初始化脚本路径
2. Upstart (早期Ubuntu采用)
基于事件触发的初始化系统
3. systemd (当前主流方案)
示例
systemctl isolate multi-user.target # 对应init 3
systemctl isolate graphical.target # 对应init 5
动手实验
实验1:运行级别切换测试
从图形界面切换到终端模式
init 3
确认服务变化后返回图形界面
init 5
实验2:体验维护模式
进入单用户模式
init 1
进行磁盘检查
fsck /dev/sda1
使用须知
- 权限限制:init命令一般需要超级用户权限
- 操作谨慎:直接使用init 0或init 6可能导致未保存数据丢失
- 版本差异:不同发行版可能采用不同的init实现
- 服务变动:切换运行级别会引发相关服务的启停
常见疑问解答
问:为什么我的系统找不到/etc/inittab?
答:采用systemd的系统已不再使用inittab,配置方法已更新
问:如何修改默认运行级别?
对于systemd系统:
systemctl set-default multi-user.target # 类似于运行级别3
问:init和shutdown命令有何区别?
两者最终都会关机,但shutdown提供了更多功能(如定时关机、通知用户等)










