我是Monit的新手,并试图了解它是否提供了一种处理PID未知的多个同名进程的方法。我理想的 Monit 行为是:
监视名称为"x"的每个进程,并重新启动其中任何一个 哪个内存使用量超过 X
如果这是不可能的,我也会满足于:
监视名称为"x"的每个进程,并重新启动所有进程(如果有) 的内存使用量超过 X
我看到的大多数 Monit 示例都依赖于 PID,或者期望只有一个进程具有指定的名称。
我也对可能比Monit更适合的其他工具的建议感兴趣。
谢谢!
你应该能够做这样的事情:
CHECK PROCESS banbylog MATCHING "java.*banbylog" start program = "/frankie/_banbylog.sh"
if memory usage > 70% MB for 5 cycles then restart
if memory usage > 4 GB for 5 cycles then restart
我在这里详细介绍了如何通过正则表达式捕获进程。上述格式未经过测试。如果它不起作用,请告诉我。
理想情况下,在正则表达式上,您可以捕获每个进程的独特内容,就像您不这样做一样,会选择最古老的进程。