Python 检测进程是否存在发送告警

前言

工作上的需求,需要写一个告警中转程序,写完后又怕挂掉没人知道,就写了这个简单进程检测脚本,如果有进程不存在则发出钉钉告警。

1. Linux kill -0

kill 命令如果参数是 0,不会发送任何的信号,但是仍会执行错误检查,可以用他来检测某个进程ID或进程组 ID 是否存在。

2. 脚本展示

使用 kill -0 来检测进程是否存在,使用 crontab 每小时执行一次。

# -*- coding: utf-8 -*-
import sys
import os
import json
import requests


# crontab -l
# 0 */1 * * * python3 /opt/monitor_process.py 进程号码

def send_massage(pid):
    content = '【进程探活告警】您的 {0} 进程检测异常,请登陆环境查看。'.format(str(pid))
    # 这里写你的钉钉群 webhook
    webhook = ''

    header = {
        "Content-Type": "application/json",
        "Charset": "UTF-8"
    }

    message = {

        "msgtype": "text",
        "text": {
            "content": content
        },
        # "at": {
        #     "isAtAll": True
        # }
    }
    message_json = json.dumps(message)
    info = requests.post(url=webhook, data=message_json, headers=header)
    # print(info)


def monitor_process(pid):
    try:
        os.kill(pid, 0)
        # print(process_id)
    except ProcessLookupError:
        # 表示进程不存在
        # print('ProcessLookupError')
        send_massage(pid)


process_id = int(sys.argv[1])

# 运行函数
monitor_process(process_id)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值