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

简介: 如何在 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 下正在运行的服务。我们还介绍了如何检查正在侦听的端口服务以及如何查看在系统防火墙中打开的服务或端口。

相关文章
|
23天前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
266 7
|
24天前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
109 19
|
2月前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
280 14
|
3月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
58 5
linux系统服务二!
|
3月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
73 3
linux系统服务!!!
|
3月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
548 3
|
3月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
234 3
|
Linux
Linux 命令详解(七)Systemd 入门教程:命令篇
Systemd 入门教程:命令篇 http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
1035 0
|
Linux
Linux 命令详解(八)Systemd 入门教程:实战篇
Systemd 入门教程:实战篇 http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html
1080 0
|
8天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用