乐趣区

关于程序员:如何在-Linux-中列出-Systemd-下所有正在运行的服务

动动发财的小手,点个赞吧!

Linux 零碎提供多种零碎服务(如过程治理、登录、syslog、cron 等)和网络服务(如近程登录、电子邮件、打印机、虚拟主机、数据存储、文件传输、域名解析等)(应用 DNS)、动静 IP 地址调配(应用 DHCP)等等)。

从技术上讲,服务是一个过程或一组过程(通常称为守护过程)在后盾继续运行,期待申请进入(尤其是来自客户端的申请)。

Linux 反对不同的形式来治理(启动、进行、重新启动、在系统启动时启用主动启动等)服务,通常是通过过程或服务管理器。大多数(如果不是全副)古代 Linux 发行版当初都应用雷同的过程管理器:systemd。

Systemd 是 Linux 的零碎和服务管理器;init 过程的替代品,与 SysV 和 LSB init 脚本兼容,systemctl 命令是治理 systemd 的次要工具。

在本指南中,咱们将演示如何在 Linux 中列出 systemd 下所有正在运行的服务。

在 Linux 中列出 SystemD 下正在运行的服务

当您运行不带任何参数的 systemctl 命令时,它将显示所有加载的 systemd 单元的列表(浏览 systemd 文档以获取无关 systemd 单元的更多信息),包含服务,显示它们的状态(无论是否处于活动状态)。

systemctl 

要列出零碎上所有已加载的服务(无论是流动的、正在运行的、退出的还是失败的,请应用 list-units 子命令和带有服务值的 –type 开关。

# systemctl list-units --type=service
OR
# systemctl --type=service

要列出所有已加载但处于活动状态的服务,包含正在运行的和已退出的服务,您能够增加值为 active 的 –state 选项,如下所示。

# systemctl list-units --type=service --state=active
OR
# systemctl --type=service --state=active

但要疾速浏览所有正在运行的服务(即所有已加载和正在运行的服务),请运行以下命令。

# systemctl list-units --type=service --state=running 
OR
# systemctl --type=service --state=running

如果您常常应用后面的命令,您能够如图所示在 ~/.bashrc 文件中创立一个别名命令,以便轻松调用它。

vim ~/.bashrc

而后在别名列表下增加以下行,如屏幕截图所示。

alias running_services='systemctl list-units  --type=service  --state=running'

保留文件中的更改并敞开它。从当初开始,应用“running_services”命令查看服务器上所有已加载、正在运行的服务的列表。

# running_services    #use the Tab completion 

此外,服务的一个重要方面是它们应用的端口。要确定守护过程正在侦听的端口,您能够应用 netstat 或 ss 命令,如图所示。

其中标记 -l 示意打印所有侦听套接字,-t 显示所有 TCP 连贯,-u 显示所有 UDP 连贯,-n 示意打印数字端口号(而不是应用程序名称),-p 示意显示应用程序名称。

# netstat -ltup | grep zabbix_agentd
OR
# ss -ltup | grep zabbix_agentd

第五列显示套接字:Local Address:Port。在这种状况下,过程 zabbix_agentd 正在侦听端口 10050。

此外,如果您的服务器正在运行防火墙服务,该服务管制如何阻止或容许进出所选服务或端口的流量,您能够应用 firewall-cmd 或 ufw 命令列出已在防火墙中关上的服务或端口(取决于您应用的 Linux 发行版),如图所示。

# firewall-cmd --list-services   [FirewallD]
# firewall-cmd --list-ports

$ sudo ufw status     [UFW Firewall]

目前为止就这样了!在本指南中,咱们演示了如何在 Linux 中查看 systemd 下正在运行的服务。咱们还介绍了如何查看正在侦听的端口服务以及如何查看在零碎防火墙中关上的服务或端口。

本文由 mdnice 多平台公布

退出移动版