三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Linux runlevel 命令超详细教程|系统运行等级查看与实战指南

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 "当前运行在图形界面模式" fi

5. 注意事项

  • 权限要求: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

← 返回列表