小工具之进程守护器

操作系统: CentOS 6.5_x64
开发语言: Python

适用场景:
程序异常退出后需要及时启动的情况。

源码地址: https://github.com/mike-zhang/processGuarder

原理

通过ps检查进程是否存在,如果不存在则启动

使用

./processGuarder.py default.xml

参数配置

全局参数配置

  • interval
    检测时间间隔

  • loglevel

    日志级别
    0 : NOTSET,
    1 : DEBUG,
    2 : INFO,
    3 : WARNING,
    4 : ERROR,
    5 : CRITICAL

  • lognum
    日志文件数目

  • logsize
    日志文件大小(单位:MB)

  • logPath
    日志文件路径

  • psTimes
    ps命令执行最大次数(连续检查psTimes次,如果还是没检测到进程,则启动)

程序参数配置

  • processName
    进程名称
  • command
    程序路径
  • param
    程序运行参数
  • restartDelay
    程序启动需要的时间(单位:秒)

配置示例

普通程序配置(example):

<program scriptName = "">
    <processName>proName</processName>
    <command>/path/to/pro</command>
    <param>params</param>
    <restartDelay>1</restartDelay>seconds
</program>

脚本程序配置(example):

<program scriptName="python" >
    <processName>script.py</processName>
    <command>/path/to/script.py</command>
    <param>params</param>
    <restartDelay>1</restartDelay>seconds
</program>

其它

1、进程守护器前台运行还是后台运行?
答 : 进程守护器启动时会通过fork方式生成守护进程,在后台运行。

2、如果进程守护器程序本身退出了怎么办?
答 : 可以在crontab中配置定时启动进程守护器,如果守护器已经启动,会自动退出,不会启动多份;如果进程守护器没有启动,则正常启动,并根据提供的配置进行程序检测。

3、更强大的工具请参考monit ( https://mmonit.com/monit/ )

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170118_小工具之进程守护器.md

欢迎补充  

posted on 2017-01-18 23:10  Mike_Zhang  阅读(2339)  评论(2编辑  收藏  举报