在monit配置文件中,我们有一个我们期望monit检查的进程列表。每个人看起来像:
check process process_name_here
with pidfile /path/to/file.pid
start program = "/bin/bash ..."
stop program = "/bin/bash ..."
if totalmem is greater than X MB for Y cycles then alert
if N restarts within X cycles then alert
group group_name
由于我们在此列表中有大约30-40个流程,因此我有两个问题:
1)如果我们重启服务(全部杀掉它们),我们可以让monit同时启动所有进程而不是现在的方式(按顺序逐个启动)。
2)我们可以指定我们希望流程开始的顺序吗?如何确定订单?它们出现在conf文件中的顺序是什么?是按进程名称吗?还要别的吗?如果上述#1不可能,这一点尤其重要......
答案 0 :(得分:1)
您可以使用depends on
语法。我用它来定制Varnish版本。
例如,处理,流程b 和流程c 。流程 a 需要首先启动,然后是 b 和 c 。
你的第一个过程不依赖于任何事情。在检查流程 b 时,您需要:
depends on process a
然后在您的流程中 c 检查,您需要:
depends on process b
这应该确保以正确的顺序启动进程。如果这对您有用,请告诉我。
答案 1 :(得分:0)
仅使用文档,除了monit运行单线程这一事实外,没有任何内容与第一点相关。
至于第二点,在" SERVICE POLL TIME":
下检查的执行顺序与.monitrc文件中的顺序相同,除非在服务之间设置依赖关系,在这种情况下,服务层次结构可以交替检查顺序。
请注意,如果您的包含字符串与多个文件匹配,则它们不会按特定顺序包含。
如果您需要特定订单,则应尽可能使用DEPENDS