云网牛站
所在位置:首页 > Linux命令 > 使用systemctl命令列出Linux服务并检查其状态

使用systemctl命令列出Linux服务并检查其状态

2020-12-25 16:07:14作者:晴弈稿源:云网牛站

本文介绍使用Systemctl命令列出Linux服务并显示服务状态及检查其状态。

 

前言

在Linux中,服务是在后台运行的程序。服务可以按需启动,也可以在启动时启动。

如果您将Linux用作主要的操作系统或开发平台,那么您将处理不同的服务,例如webserver,ssh或cron。在调试系统问题时,了解如何列出正在运行的服务或检查服务状态非常重要。

最近的大多数Linux发行版都使用systemd作为默认的初始化系统和服务管理器。

Systemd是一套用于管理Linux系统的工具。它用于启动计算机、管理服务、自动挂载文件系统、日志事件、设置主机名和其他系统任务。参考Systemd入门教程

本文将介绍如何在Linux中列出服务。

 

列出Linux服务

Systemd使用单元的概念,可以是服务、套接字、安装点、设备等。单元是使用ini格式的文本文件定义的。这些文件包括有关设备、其设置和要执行的命令的信息。文件扩展名定义单位文件类型。例如,系统服务单元文件的扩展名为.service。

systemctl是一个命令行实用程序,用于控制systemd和管理服务。它是systemd生态系统的一部分,默认情况下在所有系统上都可用。

要获取所有已加载的服务单元的列表,请输入:

sudo systemctl list-units --type service

返回信息如下图:

使用systemctl命令列出Linux服务并检查其状态

输出的每一行从左到右包含以下几列:

UNIT-服务单位的名称。

LOAD-关于单元文件是否已加载到内存中的信息。

ACTIVE-高层单位文件激活状态,可以是激活、重新加载、非激活、失败、停用。它是SUB列的概括。

SUB-底层单位文件激活状态。该字段的值取决于单位类型。例如,类型服务单元可以处于下列状态之一:dead、exited、failed、inactive或running。

DESCRIPTION-单位文件的简短描述。

默认情况下,该命令仅列出已加载的活动单元。要也查看已加载但不活动的单元,请传递--all选项:

sudo systemctl list-units --type service --all

如果要查看所有已安装的单位文件,而不仅仅是加载的文件,请使用:

sudo systemctl list-unit-files

 

显示服务状态及检查其状态

要检查服务的状态,请使用systemctl status命令:

sudo systemctl status <service_name>.service

其中<service_name>是您要检查的服务单元的名称。例如,要确定nginx服务的当前状态,请运行:

sudo systemctl status nginx.service

注:您可以省略后缀“.service”。systemctl status nginx与systemctl status nginx.service相同。

返回信息如下图:

使用systemctl命令列出Linux服务并检查其状态

该命令将打印以下信息:

Loaded-服务单元是否已加载以及该单元文件的完整路径。它还显示是否在启动时启动了设备。

Active-服务是否处于活动状态并且正在运行。如果您的终端支持颜色,并且该服务已启用并且正在运行,则点(如下图所示)和“active (running)”部分将以绿色打印。该行还显示了服务运行了多长时间。

使用systemctl命令列出Linux服务并检查其状态

Docs-服务文档。

Process-有关服务流程的信息。

Main PID-服务PID。

Tasks-占单位的任务数和任务限制。

Memory-有关已用内存的信息。

CGroup-有关相关控制组的信息。

如果只想检查服务状态,请使用systemctl is-active命令。例如,要验证nginx服务正在运行,可以运行:

systemctl is-active nginx.service

返回的信息如下:

active

该命令将向您显示服务状态。如果该服务处于活动状态,则该命令返回退出状态0,这在shell脚本中使用该命令时很有用。

 

相关主题

systemctl命令_Linux systemctl命令使用详解:系统服务管理器指令

Linux命令子频道
精选文章
热门文章