watchdog用于监测系统服务是否挂掉,挂掉则自动重启

import psutil
import os

cmd = [('wxwork_approval_data_consumer.py', "systemctl {0} wxwork_approval_data_consumer.service"),
       ('/opt/work_wechat/run.sh', "systemctl {0} run_work_wechat.service")
       ]
pre_run = list()

for single_cmd in cmd:
    x = single_cmd[0]
    count = 0
    for pid in psutil.pids():
        p = psutil.Process(pid)
        for z in p.cmdline():
            if x in z:
                if p.is_running():
                    print(str(pid) + ' is running.')
                    count += 1
                    break
        if count > 0:
            break
    if count == 0:
        pre_run.append(single_cmd[1])
for pr in pre_run:
    os.system(pr.format('start'))
# 利用系统定时器  每隔一秒执行上面的watch_dog程序
crontab -e
*/1 * * * * /opt/work_wechat/watch_dog.py

 

posted @ 2021-12-07 16:34  一朵包纸  阅读(192)  评论(0编辑  收藏  举报