操作系統: CentOS 6.5_x64開發語言: Python 適用場景:程式異常退出後需要及時啟動的情況。 源碼地址: https://github.com/mike-zhang/processGuarder 原理 通過ps檢查進程是否存在,如果不存在則啟動 使用 ./processGuarde ...
操作系統: 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中配置定時啟動進程守護器,如果守護器已經啟動,會自動退出,不會啟動多份;如果進程守護器沒有啟動,則正常啟動,並根據提供的配置進行程式檢測。
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170118_小工具之進程守護器.md
歡迎補充