在Linux系统中查看运行级别(runlevel)可以通过以下几种方法:
1. 使用`runlevel`命令
直接执行`runlevel`命令会显示当前运行级别和前一个运行级别。输出格式为`N 5`,其中`N`表示前一个级别(若为`N`表示未切换过),`5`为当前级别。
适用于传统的SysV init系统(如CentOS 6或Debian 7及更早版本)。
2. 查看`/etc/inittab`文件
在SysV init系统中,默认运行级别通常定义在`/etc/inittab`文件中,例如:
`id:5:initdefault:`表示默认运行级别为5(图形界面)。
注意:较新的systemd系统可能无此文件。
3. 使用`who -r`命令
执行`who -r`可显示当前运行级别及系统启动时间。输出示例:`run-level 5 2024-07-20 10:00`,表明运行级别为5。
4. 查看systemd目标(适用于现代系统)
若系统使用systemd(如CentOS 7+/Ubuntu 16.04+),运行级别被"目标"(target)替代。通过以下命令查看:
- `systemctl get-default`:显示默认目标(如`graphical.target`对应级别5)。
- `systemctl list-units --type=target`: 列出所有活动目标。
5. 通过`init`或`telinit`命令临时切换
使用`init 3`或`telinit 3`可切换到运行级别3(多用户文本模式),但需注意:
- 在systemd中,这会映射到`multi-user.target`。
- 临时切换不会修改默认级别。
6. 扩展知识:运行级别含义
- 0:停机
- 1:单用户模式(维护模式)
- 2:多用户无网络(罕见)
- 3:多用户文本模式
- 4:未使用(可自定义)
- 5:图形界面模式
- 6:重启
7. 注意事项
- 旧版工具(如`runlevel`)在systemd系统中可能返回`unknown`或模拟结果。
- 修改默认级别需谨慎:在SysV中编辑`/etc/inittab`,在systemd中使用`systemctl set-default TARGET.target`。
对SysV init与systemd的差异需特别注意,后者通过`target`实现更灵活的依赖管理。