0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何查看Linux systemd下正在运行的服务

CHANBAEK 来源:魏文第 作者:魏文第 2023-12-04 14:47 次阅读

Linux 系统提供了各种系统服务(如 syslog、cron 等)和网络服务(如 DNS、SSH 等)。

从技术上讲,服务是一个或一组在后台持续运行的进程(通常称为守护进程),等待接收请求(尤其是来自客户端的请求)。

Linux 支持不同的服务管理方式(启动、停止、重启、设置开机启动等),通常是通过进程或服务管理器。大多数 Linux 发行版使用 systemd 进程管理器。

什么是 systemd

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

Systemd 的更多信息,可以查看Rocky Linux Systemd 介绍一文。

为什么要查看 Linux 中正在运行的服务

出于多种原因,了解 Linux 系统上运行的服务至关重要。它使你能够监控资源利用率、解决问题并有效地管理系统性能。Systemd 通过提供强大的命令来收集有关 active services 的信息,从而简化了这项任务。

在本指南中,我将演示在 Linux 系统中列出 Systemd 下所有正在运行的服务的进程,为不同经验水平的读者提供全面的指导。

列出 systemd 下正在运行的服务

执行不带任何参数systemctl 命令,将显示所有已加载的 systemd 单元列表,包括 services,并显示它们的状态(无论是否处于 active 状态)。

systemctl

图片
列出所有已加载的 systemd unit list

列出 systemctl 中的所有 Units

要列出系统中所有加载的 services(无论是 active、running、exited 还是 failed),请使用 list-units 子命令和 --type 选项,其值为 service。

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

图片
查看 systemctl 中的所有服务

要列出所有已加载且处于 active 状态的 services,可以添加 --state 选项,其值为 active,如下所示。

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

图片
查看状态为 active 的 services

列出 systemctl 中正在运行的服务

但要快速查看所有正在运行的服务(即所有已加载且主动运行的服务),请运行以下命令。

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

图片
查看 Running 状态的 Services

以下是与 Systemd 单元及其状态相关的主要术语:

  • Unit:单元可以是 service、socket、device 或各种其他实体。
  • Load:表示单元是否已加载。一个单元可以被加载,但状态不一定是 active 的。
  • Active:显示单元是否正在主动运行,或者它是否遇到问题,处于失败或不活动状态。
  • SUB:提供了关于单元的特定状态的附加细节。对于 service,它可能指示服务是否正在运行(running)、已停止(exited)或遇到问题(failed)。
  • Description:描述文档,帮助用户识别和理解单元的用途,而无需深入研究详细的配置文件。

为 systemctl 命令创建别名

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

# vim ~/.bashrc

然后在别名列表下添加以下行:

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

保存并关闭文件,执行 source 命令,加载该命令:

# source ~/.bashrc

接下来就可以使用 running_services 命令查看服务器上所有已加载的、正在运行的服务的列表。

图片
使用别名查看服务列表

查找进程监听的端口

此外,查看服务的端口也很重要。要确定守护进程正在监听的端口,可以使用 netstatss 命令,如下所示。

netstat -ltunp
# OR
ss -ltunp

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

例如查看 ssh 进程的端口号信息:

# ss -ltunp | grep ssh

图片
查看 ssh 服务端口号

第五列显示套接字:local_address:port。在这种情况下,ssh 进程正在侦听 TCP 22 端口。

总结

在本指南中,我演示了如何在 Linux 中查看 systemd 下正在运行的服务。还介绍了如何查看服务正在监听的端口。这些都是运维工作中的常见操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26922
  • 进程
    +关注

    关注

    0

    文章

    193

    浏览量

    13876
  • 服务管理器
    +关注

    关注

    0

    文章

    2

    浏览量

    447
收藏 人收藏

    评论

    相关推荐

    Linux中如何查看系统运行信息

    Linux系统中,查看系统运行状态(或者故障排除),比如内存或者CPU使用率的时候,可以使用top命令,它提供了系统运行情况的信息。根据man手册,top程序提供了
    发表于 11-25 16:37 3676次阅读
    <b class='flag-5'>Linux</b>中如何<b class='flag-5'>查看</b>系统<b class='flag-5'>运行</b>信息

    Linux使用Systemd管理进程服务

    systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理
    发表于 11-28 09:07 395次阅读

    Linux使用Systemd管理进程服务

    今天浩道跟大家分享linux运维中大家很少用到的一个硬核干货,使用 Systemd 管理进程服务。让你体验一下该技巧带来的便捷性!
    发表于 12-12 09:02 337次阅读

    删除任意文件(包括正在运行的) 绿色版

    删除任意文件(包括正在运行的) 绿色版
    发表于 05-14 11:42

    Proteus 正在运行突然关闭

    proteus 正在运行,过几秒钟之后就死了,不知道什么情况?有没有遇到过相似问题的?如何解决?
    发表于 11-27 16:23

    如何在 Linux 上从 NetworkManager 切换为 systemd

    Linux 发行版和 systemd-networkd 兼容。  对于其它发行版,在开始下一步之前先检查一你的 systemd 版本。  $ systemctl --versio
    发表于 11-25 10:08

    为什么我关闭工程管理器 老是提醒我这么做可能会丢弃正在运行的VI

    为什么我关闭工程管理器 老是提醒我这么做可能会丢弃正在运行的VI可是我查看 可能存在VI线程都关闭了能又别的方法查看吗 不用点开 VI也能查
    发表于 05-25 10:29

    怎么正常检测固件是否正在运行

    您好,我正在使用2端口E8362C,运行固件版本,A.09.42.22。使用DCOM。有没有办法优雅地检测固件是否正在运行?假设我的程序中有一个PNA应用程序实例,如果PNA固件被用户关闭或者它崩溃
    发表于 10-18 17:03

    i.M8XMQ开发板如何通过Systemd服务实现应用自启

    。什么是Systemd服务SystemdLinux的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.
    发表于 04-25 15:22

    Linux服务的内容如何查看

     ps是进程查看命令,netstat是端口查看命令,在Linux系统中,服务一定是有进程的,所以使用ps命令可以查看
    发表于 05-20 09:09 614次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>服务</b>的内容如何<b class='flag-5'>查看</b>

    Linux查看服务器状态的命令大全

    Linux查看服务器状态的命令大全
    发表于 07-09 09:34 21次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>查看</b><b class='flag-5'>服务</b>器状态的命令大全

    如何在Linux使用ps/pstree/top命令查看进程

    Linux 程序的运行实例称为进程。有时在Linux工作时,您可能需要找出当前正在运行的进程。
    的头像 发表于 12-05 17:07 1468次阅读

    如何检查CentOS系统正在运行的版本

    首次登录CentOS计算机时或者在进行任何工作之前,您可能需要检查系统正在运行的CentOS版本。
    的头像 发表于 12-12 17:16 1102次阅读

    如何查看正在运行Linux系统版本

    对于 Linux 系统,如果是你自己安装的,你就会知道安装的是哪个发行版,以及版本号。但如果是使用 ssh 连接的远程 Linux 服务器,那么其版本就没那么明显了,需要使用某种方法来查看
    的头像 发表于 02-16 18:15 948次阅读

    linux查看服务器配置

    Linux操作系统中,了解服务器配置对于系统管理员和网络工程师而言至关重要。通过查看服务器配置,您可以了解服务器的硬件和软件组成部分,包括
    的头像 发表于 11-17 09:41 604次阅读