使用 systemd 检查服务状态

  1. systemd服务单元对应系统服务。
    使用以下命令显示有关服务单元的详细信息。
    此示例显示有关 ntpd.service 服务单元的信息。
    如果需要,我们可以省略 .service 扩展名。
# systemctl status ntpd.service
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2017-08-26 15:01:55 IST; 2 months 20 days ago
 Main PID: 19984 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─19984 /usr/sbin/ntpd -u ntp:ntp -g
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

以下信息可用于指定的服务单位:

  • Loaded :如果服务被加载,服务单元文件的绝对路径,如果服务单元已启用
  • Active :如果服务单元正在运行和时间戳
  • Main PID : 对应系统服务的进程ID和服务名称
  • Status:有关相应系统服务的添加信息
  • Process:有关相关流程的添加信息
  • CGroup :有关相关控制组的添加信息

如果命令由 root 用户执行,则会显示最新的日志条目。

我们将看到绿色(如果正在运行)或者红色(如果已停止)的服务状态 。

  1. 列出所有服务的状态:
# systemctl list-unit-files --type=service --all

例如 :

# systemctl list-unit-files --type=service
UNIT FILE                                     STATE
abrt-ccpp.service                             enabled
abrt-oops.service                             enabled
abrt-pstoreoops.service                       disabled
abrt-vmcore.service                           enabled
abrt-xorg.service                             enabled

我们应该看到禁用模式下的服务以红色突出显示,启用模式下的服务以绿色突出显示,如下所示。

CentOS/RHEL 7:如何使用 systemd 检查服务的状态

以前版本的 CentOS/RedHat Linux 使用位于 /etc/rc.d/init 目录中的 init 脚本来启动和停止服务。

在 CentOS/RHEL 7 中,这些 init 脚本已被 systemd 服务单元取代。
服务单元有一个 .service扩展名。
使用 systemctl 命令如下列出所有加载的服务单元:

# systemctl list-units --type service --all
  UNIT                                                            LOAD      ACTIVE   SUB     DESCRIPTION
  abrt-ccpp.service                                               loaded    inactive dead    Install ABRT coredump hook
  abrt-oops.service                                               loaded    inactive dead    ABRT kernel log watcher
  abrt-vmcore.service                                             loaded    inactive dead    Harvest vmcores for ABRT
  abrt-xorg.service                                               loaded    inactive dead    ABRT Xorg log watcher
  abrtd.service                                                   loaded    inactive dead    ABRT Automated Bug Reporting Tool
欢迎来到之路教程(on itroad-com)

检查服务状态的其他命令

使用以下命令检查服务是否正在运行(活动)或者未运行(非活动):

# systemctl is-active sshd
active

使用以下命令检查服务是启用还是禁用:

# systemctl is-enabled sshd
enabled
# systemctl is-enabled httpd
disabled
日期:2020-09-17 00:12:27 来源:oir作者:oir