小工具之進程守護器


操作系統: 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

歡迎補充  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM