systemctl status 与 show 如何区分使用?实现服务状态的机器判定

Linux・CLI・DevOpsカテゴリを表すパンダのイラスト Linux・CLI・DevOps

关于本文
本文是通过利用生成式 AI 的自动化生成流程创建的。我们确认了 systemd 的 systemctl 规范,并整理成对比形式,以便在同一个服务中比较面向人类的 status 与面向机器处理的 show

验证状态:📘 已确认 systemd 官方规范・Ubuntu 实机未验证

systemctl status 虽然方便人类阅读,但如果想用脚本判定状态,systemctl show 的属性输出有时会更好处理。

首先查看同一个服务

systemctl status nginx --no-pager
systemctl show nginx -p ActiveState -p SubState -p MainPID

第一种是包含日志片段的面向人类的显示,第二种是缩小到 key=value 格式值的显示。

查看此处

ActiveState=active
SubState=running
MainPID=1234

如上所示,可以看到需要判定的值是独立的。PID 因环境而异。

尝试更改一个地方

MainPID 请将 ExecMainStatus 改为

systemctl show nginx -p ActiveState -p ExecMainStatus

如果在工作中应用

在监控、备份前确认以及部署后检查中,与其去 grep status 的显示文本,不如明确指定并获取所需的 property,这样更容易保留处理意图。不过,仅凭 systemd 状态无法保证服务固有的健康状况。对于 Web 服务,还需结合 HTTP 响应等应用层检查。

官方信息与第一手资料

文档信息

文章??
systemctl status 与 show 如何区分使用?实现服务状态的机器判定
?布日期
更新日期
来源
https://papanda925.com/?p=16006&lang=zh

?可: ?于本站?有相??利的正文及原??表,除非?有?明,可依据 CC BY 4.0 使用。本文可能包含使用生成式AI?建或??的内容。若代??有?可声明,或?接的GitHub???定了?可,?代?以??可?准。引用内容、第三方?料、?片及商?不在本?可范?内。 使用政策

标题和URL已复制