python 自定义守护线程

code monitor.py

#!/usr/bin/env python
# coding:utf-8

import os
import logging

#日志格式
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='monitor.log', level=logging.DEBUG, format=LOG_FORMAT)
process = '/home/work/monitor/run.lock'
#需要监控的服务
servers = ['bill_data_cur/','bill_data_cur_new']
#服务脚本目录
path = '/home/proxy/bin/'
for server in servers:
    os.system('jps -m|grep %s > %s'%(server,process))
    if not (os.path.getsize(process)):
         os.system("sh %s%s.sh"%(path,server.replace("/","")))
logging.info("checking...")

通过执行shell jps -m|grep 输出文本的形式确定程序是否运行
如果未运行将程序启动

crontab -e 调度

0 * * * * python /home/work/monitor/monitor.py

通过crontab每小时调度一次

cron 日志查看地址: /var/log/cron

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (cro...
    Zcclucky阅读 600评论 0 0
  • Linux 系统提供了使用者控制计划任务的命令 :crontab 命令。 一、crond简介 crond是linu...
    happeace阅读 1,816评论 0 53
  • cron服务提供crontab命令来设定cron服务的,类似于windows的计划任务,它的设定方式如下 cron...
    jimlin阅读 7,932评论 0 1
  • 用@Tested标注被测试类,在运行测试方法时,如果该实例仍然为null,JMockit会自动组装相关mock对象...
    孙兴斌阅读 801评论 0 0
  • 2017年6月3号,我们又在这里见面了,据说已经连着热了好久,却在我们见面的这一天温度变得凉爽,一度让我觉得这可能...
    Sunnyhappy阅读 346评论 0 0