Red Hat Training

A Red Hat training course is available for RHEL 8

14.2. 显示系统服务状态

您可以检查任何服务单元以获取其详细信息,并验证服务的状态是启用还是正在运行。您还可以查看在特定的服务单元之后或之前启动的服务。

流程

  • 要显示对应于系统服务的服务单元的详细信息,请输入:

    $ systemctl status <name>.service

    <name> 替换为您要检查的服务单元的名称(例如:gdm)。

    此命令显示所选服务单元的名称,后跟其简短描述,一个或多个在 可用的服务单元信息 中描述的字段(如果其通过 root 用户执行),以及最新的日志条目。

    表 14.1. 可用的服务单元信息

    描述

    Loaded

    是否载入了服务单元、到这个单元文件的绝对路径,以及是否启用该单位的信息。

    Active

    服务单元是否在运行的信息,后面有一个时间戳。

    Main PID

    对应系统服务的 PID 及其名称。

    Status

    相关系统服务的额外信息。

    Process

    有关相关进程的附加信息。

    CGroup

    有关相关的控制组(cgroups) 的其他信息。

    例 14.1. 显示服务状态

    GNOME 显示管理器的服务单元名为 gdm.service。要确定这个服务单元的当前状态,在 shell 提示下键入以下内容:

    # systemctl status gdm.service
    gdm.service - GNOME Display Manager
       Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled)
       Active: active (running) since Thu 2013-10-17 17:31:23 CEST; 5min ago
     Main PID: 1029 (gdm)
       CGroup: /system.slice/gdm.service
               ├─1029 /usr/sbin/gdm
               ├─1037 /usr/libexec/gdm-simple-slave --display-id /org/gno...
               └─1047 /usr/bin/Xorg :0 -background none -verbose -auth /r...
    
    Oct 17 17:31:23 localhost systemd[1]: Started GNOME Display Manager.
  • 要只验证特定的服务单元是否正在运行,请输入:

    $ systemctl is-active <name>.service
  • 要确定是否一个特定的服务单元已启用,请输入:

    $ systemctl is-enabled <name>.service
    注意

    如果指定的服务单元正在运行或已启用,则 systemctl is-activesystemctl is-enabled 都会返回一个状态为 0 的退出状态。

  • 要确定在指定的服务单元之前启动哪些服务,请输入:

    # systemctl list-dependencies --after <name>.service

    在命令中将 <name> 替换为服务的名称。

    例如,要查看在 gdm 之前启动的服务的列表,请输入:

    # systemctl list-dependencies --after gdm.service
    gdm.service
    ├─dbus.socket
    ├─getty@tty1.service
    ├─livesys.service
    ├─plymouth-quit.service
    ├─system.slice
    ├─systemd-journald.socket
    ├─systemd-user-sessions.service
    └─basic.target
    [output truncated]
  • 要确定在指定的服务单元之后排序启动哪些服务,请输入:

    # systemctl list-dependencies --before <name>.service

    在命令中将 <name> 替换为服务的名称。

    例如,要查看在 gdm 之后要启动的服务的列表,请输入:

    # systemctl list-dependencies --before gdm.service
    gdm.service
    ├─dracut-shutdown.service
    ├─graphical.target
    │ ├─systemd-readahead-done.service
    │ ├─systemd-readahead-done.timer
    │ └─systemd-update-utmp-runlevel.service
    └─shutdown.target
      ├─systemd-reboot.service
      └─final.target
        └─systemd-reboot.service

其他资源