在Linux系统中,运行级别(Runlevel)是系统启动时的核心概念,它定义了系统启动后所处的状态,包括哪些服务需要启动、哪些设备需要加载等,了解如何查看和管理运行级别,对于系统管理和故障排查至关重要,本文将详细介绍Linux运行级别查看的相关知识,包括运行级别的基本概念、查看方法以及不同运行级别的特点。

运行级别的基本概念
Linux运行级别是系统在启动过程中根据init进程(早期版本)或systemd(现代版本)加载的不同运行模式,每个运行级别对应一组系统服务的启动状态,决定了系统的功能和可用性,在传统的SysVinit系统中,运行级别通常用数字0-6表示,每个数字代表一种特定的运行模式;而现代Linux发行版多采用systemd,其通过target替代了传统的运行级别,但保留了与运行级别的兼容性映射。
传统SysVinit系统的运行级别查看
对于使用SysVinit的旧版Linux系统(如CentOS 6、Debian 7等),可通过以下方法查看当前运行级别:
使用runlevel命令
runlevel命令是最直接的查看方式,它会显示前一个运行级别(N表示无)和当前运行级别。
runlevel
输出结果可能为N 3,表示前一个运行级别为无,当前运行级别为3(多用户命令行模式)。
查看/etc/inittab文件
/etc/inittab文件是SysVinit系统的配置文件,其中定义了默认运行级别,通过查看该文件的id:3:initdefault:行,可确定系统的默认运行级别(示例中为3)。

使用who或runlevel命令的扩展信息
结合who命令可查看当前登录用户,辅助判断系统运行状态:
who -r
该命令会直接显示当前运行级别及其时间戳,如run-level 3 2023-10-01 10:30。
现代systemd系统的运行级别查看
当前主流Linux发行版(如Ubuntu 16.04+、CentOS 7+、Debian 8+等)已采用systemd作为初始化系统,其运行级别通过target实现,传统运行级别与systemd target的对应关系如下:
- 运行级别0 →
poweroff.target(关机) - 运行级别1 →
rescue.target(救援模式) - 运行级别3 →
multi-user.target(多用户命令行) - 运行级别5 →
graphical.target(图形界面) - 运行级别6 →
reboot.target(重启)
使用systemctl命令查看当前target
systemctl是systemd的核心管理工具,通过以下命令可查看当前默认和激活的target:
systemctl get-default # 查看默认target systemctl is-system-running # 查看系统当前状态(如running)
查看运行级别对应关系
若需查看传统运行级别与systemd target的映射,可执行:

ls -l /lib/systemd/system/*.target | grep -E 'runlevel|default'
或直接查看man init中的说明文档。
动态切换运行级别(target)
虽然本文重点在于“查看”,但了解切换方法有助于理解运行级别的应用场景,临时切换至救援模式:
systemctl isolate rescue.target
设置默认运行级别(如命令行模式):
systemctl set-default multi-user.target
不同运行级别的特点与应用
- 运行级别0(关机):系统停机状态,不可用于日常使用。
- 运行级别1(救援模式):单用户模式,用于系统修复,仅root用户可登录,网络服务通常关闭。
- 运行级别3(多用户命令行):无图形界面,启动网络服务,适合服务器部署。
- 运行级别5(图形界面):完整的图形用户界面,包含X Window系统,适合桌面用户。
- 运行级别6(重启):系统重启状态,用于系统更新或配置变更后重启。
无论是传统的SysVinit还是现代的systemd系统,查看运行级别都是系统管理的基础操作,通过runlevel、systemctl等工具,管理员可以快速了解系统当前状态,并根据需求调整运行模式,需要注意的是,随着systemd的普及,未来开发中应优先使用target而非数字运行级别,以适应系统的发展趋势,掌握这些方法,不仅能提升日常运维效率,也为系统故障排查提供了重要依据。



















