Linux init 命令

Linux 命令大全 Linux 命令大全


什么是 init 命令

init 是 Linux 系统中最重要的进程之一,它是系统启动后由内核创建的第一个用户级进程(PID=1),负责启动和管理系统中的所有其他进程。

关键特性

  • 进程管理:作为所有进程的父进程
  • 运行级别控制:管理系统不同的运行状态
  • 服务管理:启动和停止系统服务
  • 系统初始化:执行启动脚本和配置

init 命令的基本语法

init [运行级别]

运行级别说明

Linux 系统定义了 7 个标准运行级别:

运行级别 描述 典型用途
0 关机 系统关机状态
1 单用户模式 系统维护/root权限
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早期版本使用)

事件驱动的init系统

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

注意事项

  1. 权限要求:init命令通常需要root权限
  2. 谨慎使用:直接使用init 0或init 6可能导致未保存数据丢失
  3. 系统差异:不同发行版可能有不同的init实现
  4. 服务影响:切换运行级别会停止/启动相关服务

常见问题解答

Q:为什么我的系统没有/etc/inittab文件?
A:使用systemd的系统不再需要inittab,配置方式已改变

Q:如何设置默认运行级别?
对于systemd系统:

systemctl set-default multi-user.target  # 相当于运行级别3

Q:init和shutdown命令有什么区别?
两者最终都会关机,但shutdown提供了更多选项(如延迟关机、广播通知等)

Linux 命令大全 Linux 命令大全