虚拟主机域名注册-常见问题其他问题 → 其他问题

在Linux服务器系统中列出Systemd系统服务的操作方法

  1、如何在systemd中列出活动服务

  systemd服务是由systemctl命令管理的,如果你在运行systemctl时没有任何参数,它就会调用默认的list-units子命令,并列出各种类型的systemd单元,如service、socket、target等。

  但是您的目的是列出服务,因此您可以使用以下--type标志来指定单元类型:

  systemctl --type=service

  您是否注意到我没有指定list-units子命令,因为它是默认命令?如果要遵守约定,也可以指定。我更喜欢这种方式,在本教程的其余部分中,我将遵循这一约定。

  systemctl list-units --type=service

  在两种情况下,输出都是相同的。默认情况下,此命令仅按字母顺序显示已加载和活动的服务:

  让我解释一下输出:

  UNIT:系统单位的名称。

  LOAD:系统配置文件是否已解析单元配置文件。

  ACTIVE:设备的高级状态。

  SUB:设备的低级状态。活动单元可以处于运行状态或退出状态。该值取决于服务类型。

  如您所见,您可以列出Linux系统上已加载的服务。但是活动的systemd服务可以正在运行或可以退出(成功运行之后)。

  2、列出所有正在运行的systemd服务

  活动状态还可以具有运行,退出等子状态。你可以使用相同的--state标志与子状态。

  要列出正在运行的systemd服务,请使用如下--state=running标记:

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

  这是我的系统的示例输出,显示了一些正在运行的systemd服务:

  3、列出所有已加载的systemd服务,包括不活动的服务

  缺省情况下,systemctl命令仅显示已加载和活动的单元。

  如果要列出所有已加载的服务(包括非活动的服务),请使用--all标志:

  systemctl list-units --all --type=service

  现在,您甚至可以看到不活动的服务:

  4、列出所有非活动的systemd服务

  如果你想看到的只是不活动的服务,你可以结合各种标志喜欢--all和--state这样的:

  systemctl list-units --all --type=service --state=inactive

  如您在输出中看到的,它显示所有不活动的systemd服务:

  5、列出所有已安装的systemd服务(即使未加载)

  每个系统单元(无论是服务单元,套接字还是任何其他单元)都具有一个单元文件,该文件

  systemctl list-unit-files --type=service

  这是您应该看到的:

  解释每种状态类型将太冗长,不在本文讨论范围之内。

  6、列出将在每次引导时自动运行的所有系统服务

  要查看每次系统引导时将自动运行的所有systemd服务,请使用以下命令:

  systemctl list-unit-files --type=service --state=enabled

  您是否对启用状态感到困惑?那很正常 许多新用户将已启用的系统服务与正在运行的服务混淆了。

  但是,已启用的systemd服务意味着该服务将在系统启动时自动激活。

  您是否注意到厂商预设?在前面的示例中也存在此问题。

  供应商预设定义了安装程序时systemd单元的自动行为。

  假设您安装了新程序XYZ。此XYZ具有已启用供应商预设的名为xyz.service的系统服务。这意味着在安装程序之后,当您引导系统时,此xyz.service将在引导时自动激活。

  如果供应商预设被禁用,则必须手动将其设置为启用。启用后,它将在每次引导时自动启动。

  sudo systemd enable xyz.service

  7、显示特定系统服务的状态

  到目前为止,您已经看到了各种列出服务的方式。但是没有什么可以集中在单一服务上。

  您可以使用statussystemctl 的子命令获取有关systemd服务的详细信息。制表符完成功能与此命令一起使用。

  systemctl status

  这是网络管理器服务的示例:

  您会看到它提供了许多有用的信息,例如服务的状态,服务的手册页,消耗的内存,进程ID等。它还显示了该服务的最近几条日志记录。

  如果要在Shell脚本中检查服务是否处于活动状态,则可以使用is-active子命令。输出为0表示有效。

  systemctl is-active application.service

  同样,如果要检查是否已启用服务(设置为在启动时自动启动),则可以使用is-enabled子命令。对于已启用的服务,输出为0。

  systemctl is-enabled application.service




免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:bkook@qq.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:怎么使用 curl 命令发送 POST 请求
下一篇:Linux默认SSH远程端口怎么修改
  >> 相关文章
没有相关文章。
0

在线
客服

在线客服服务时间:9:00-18:00

客服
热线

19899115815
7*24小时客服服务热线

关注
微信

关注官方微信
顶部