Linux runlevel 命令超详细教程|系统运行等级查看与实战指南
1. 命令简介
runlevel 命令用于打印当前 Linux 系统的运行等级(runlevel)以及前一个运行等级。运行等级是系统的一种软件配置,它决定了系统启动后哪些服务会被运行。该命令通常由系统管理员在系统维护、故障排查或服务管理时使用,以快速了解系统当前所处的状态。
2. 语法格式
bash
运行
runlevel [选项]说明:该命令通常不带任何选项直接运行。输出格式为:前一个运行等级 当前运行等级。如果前一个运行等级未知(例如系统启动后未切换过等级),则会输出 N 代替。
3. 常用选项及说明
runlevel 命令本身没有常用选项。它是一个简单的工具,直接执行即可获取信息。
4. 示例用法
示例 1:查看当前运行等级
直接运行 runlevel 命令,查看系统当前和前一个运行等级。
bash
运行
runlevel输出示例:
plaintext
N 5这表示系统启动后未切换过运行等级(前一个为 N),当前运行等级为 5(通常代表图形界面多用户模式)。
示例 2:结合系统日志查看运行等级变化
在切换运行等级(如使用 init 或 telinit 命令)后,再次运行 runlevel 可以查看变化。
bash
运行
# 假设当前等级为5,切换到等级3(多用户文本模式) sudo init 3 # 再次查看运行等级 runlevel输出示例:
plaintext
5 3这表示前一个运行等级是 5,当前运行等级是 3。
示例 3:在脚本中判断运行等级
可以在 Shell 脚本中使用 runlevel 命令的输出进行条件判断。
bash
运行
#!/bin/bash current_runlevel=$(runlevel | awk '{print $2}') if [ "$current_runlevel" == "3" ]; then echo "当前运行在多用户文本模式" elif [ "$current_runlevel" == "5" ]; then echo "当前运行在图形界面模式" fi5. 注意事项
- 权限要求:runlevel 命令通常不需要特权(root)权限即可执行,任何用户都可以查看当前运行等级。
- 运行等级定义:不同的 Linux 发行版对运行等级的定义可能略有差异,但通常遵循以下常见约定:
- 0:停机(halt)
- 1:单用户模式(single user mode,用于维护)
- 2:多用户模式,无网络文件系统(NFS)(某些发行版)
- 3:完全多用户文本模式(常用服务器默认等级)
- 4:用户自定义(通常未使用)
- 5:图形界面多用户模式(常用桌面默认等级)
- 6:重新启动(reboot)
- S 或 s:单用户模式,用于启动过程(与 1 类似但略有不同)
- 具体定义请参考发行版文档(如 /etc/inittab 或 systemd 对应的 target)。
- 与 systemd 系统的兼容性:在现代使用 systemd 的 Linux 发行版(如 RHEL/CentOS 7+、Ubuntu 16.04+)中,运行等级的概念被 “目标”(target)所取代。runlevel 命令仍然可用,但实际上是映射到对应的 systemd target(例如,运行等级 3 对应 multi-user.target,等级 5 对应 graphical.target)。可以使用 systemctl get-default 查看默认目标,用 systemctl isolate 切换目标。
- 输出解读:如果系统启动后从未切换过运行等级,则前一个运行等级会显示为 N(None)。如果显示 unknown,可能表示系统运行在非标准环境或存在配置问题。
- 相关命令:
- who -r:显示当前运行等级、上次切换时间等信息(在某些系统上更详细)。
- init 或 telinit:用于切换运行等级(需 root 权限)。
- systemctl:在 systemd 系统中管理目标和服务的命令。
通过 runlevel 命令,管理员可以快速确认系统的基础运行状态,是系统管理和维护中的一个实用工具。
Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd=7uz8