如何按顺序启动monit启动过程?

时间:2014-03-06 20:38:03

标签: monit

在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不可能,这一点尤其重要......

2 个答案:

答案 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