如何在Linux下的Systemd下列出所有正在运行的服务

Systemd是Linux的服务管理器; init进程的替代品,systemctl命令是管理systemd的主要工具。

Linux系统提供各种系统服务(如进程管理登录syslogcron等)和网络服务(如远程登录 ,电子邮件,打印机,虚拟主机,数据存储,文件传输,域名)分辨率(使用DNS),动态IP地址分配(使用DHCP)等等。

从技术上讲,服务是在后台持续运行的进程或进程组(通常称为守护程序 ),等待请求进入(特别是来自客户端)。

Linux支持不同的方式来管理(启动,停止,重启,启用系统启动时的自动启动等)服务,通常通过流程或服务管理器。 大多数(如果不是全部)现代Linux发行版现在使用相同的进程管理器: systemd

另请阅读'init'和'systemd'背后的故事:为什么'init'需要在Linux中替换为'systemd'

Systemd是Linux的系统和服务管理器; init进程的替代品,与SysVLSB init脚本兼容, systemctl命令是管理systemd的主要工具。

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

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

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

# systemctl 

要列出系统上所有已加载的服务(无论是活动的,运行的,退出的还是失败的,请使用list-units子命令和--type开关,其值为service。

# systemctl list-units --type=service
OR
# systemctl --type=service
列出Systemd下的所有服务

列出Systemd下的所有服务

要列出所有已加载但活动的服务(运行和已退出的服务),可以添加值为active--state选项,如下所示。

# systemctl list-units --type=service --state=active
OR
# systemctl --type=service --state=active
列出Systemd中的所有活动运行服务

列出Systemd中的所有活动运行服务

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

# systemctl list-units --type=service --state=running 
OR
# systemctl --type=service --state=running
列出Systemd中的运行服务

列出Systemd中的运行服务

如果经常使用上一个命令,可以在〜/ .bashrc文件中创建一个别名命令 ,如图所示,以便轻松调用它。

# vim ~/.bashrc

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

alias running_services='systemctl list-units  --type=service  --state=running'
为长命令创建别名

为长命令创建别名

将更改保存在文件中并关闭它。 从现在开始,使用“ running_services ”命令查看服务器上所有已加载,正在运行的服务的列表。

# running_services	#use the Tab completion 
查看所有正在运行的服

查看所有正在运行的服

此外,服务的一个重要方面是他们使用的端口。 要确定守护程序进程正在监听的端口,可以使用netstatss工具,如图所示。

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

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

第五列显示套接字:本地地址:端口。 在这种情况下,进程zabbix_agentd正在监听端口10050

确定进程端口

确定进程端口

此外,如果您的服务器运行防火墙服务,该服务控制如何阻止或允许来自或来自所选服务或端口的流量,您可以使用firewall-cmdufw命令列出已在防火墙中打开的服务或端口(取决于您正在使用的Linux发行版,如图所示。

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

$ sudo ufw status     [UFW Firewall]
列出防火墙上的开放服务和端口

列出防火墙上的开放服务和端口

目前为止就这样了! 在本指南中,我们演示了如何在Linux下查看systemd下的运行服务。 我们还介绍了如何检查服务正在监听的端口以及如何查看在系统防火墙中打开的服务或端口。 你有任何补充或提问吗? 如果是,请使用下面的评论表联系我们。