操作系統: 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
歡迎補充