随笔 - 272  文章 - 0  评论 - 283  阅读 - 142万

小工具之进程守护器

操作系统: 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   Mike_Zhang  阅读(2366)  评论(2编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示