一般情况下,几句shell脚本,bat脚本,或者简单的100行c#代码都可以做到比较通用的进程管理工具,但是专业化的产品通用性和个性化还是有很多看头的。
1. 用ruby来写配置文件
很多动态语言都这样,应用都省略了解析过程,而且可以很方便的支持循环之类语句来启动同一应用的不同参数的多个实例
2. 支持poll和event方式的检测
3. 进程的监控
a. 拉起进程
(可以deamon的方式来运行非deamon进程,也产生pid文件)
b. 主动重启进程
CPU占用超过阀值,或者单进程内存占用超过阀值,n次中有m次这样,就主动重启该进程
c. 进程退出自动拉起
可以配置拉起的时间间隔,频率(每5分钟才重启,1个小时只能自动拉起5次之类)
d. 基于各种条件的进程管理判断
start_if, restart_if。。。。
4. 通知
进程状态发生变化时,可以发email, 写twitter, jabber(通用即时通讯接口),webhook等多种平台的结合通知机制
http://godrb.com/