Systemd有什么办法监控服务下的某个子进程运行状态?

发布于 2022-09-06 20:34:03 字数 562 浏览 16 评论 0

Systemd有什么办法监控服务下的某个子进程运行状态?

如下图,Systemd会拉起3个PHP文件作为一组服务,担心在不知情的情况下其中一个子进程会挂掉(实际确实会遇到,所以每天都会看下。)

查了些关于Systemd的命令,没有找到有关监测的命令:
archlinux-Systemd
Systemd 入门教程:命令篇

clipboard.png

望支个招

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮年慕年 2022-09-13 20:34:03

要是没有现成的工具可以用,你可以自己写一个。

以 python 为例

# -*- coding: utf-8 -*-
from subprocess import check_output
import psutil


def main_process_id(service):
    """ 返回服务的主进程 PID """
    cmd = 'systemctl show %s --property=MainPID' % service
    output = check_output(cmd, shell=1)
    return int(output.split('\n')[0].split('=')[1])


def show_child_process(ppid):
    """ 打印子进程 """
    for child in psutil.Process(ppid).children():
        print('pid=%d, %s' % (child.pid, child.cmdline()))


if __name__ == '__main__':
    show_child_process(main_process_id('mqtt'))

参阅

  1. systemctl show 命令
  2. https://pypi.python.org/pypi/...
起风了 2022-09-13 20:34:03

这种场景,可能supervisor、monit更适合。
supervisor简单,基本的重启、记录日志都有;
monit功能强大,除了重启、日志这些,还能发告警邮件,定制告警脚本。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文