Monitoring monit中进程组的滚动重新启动

Monitoring monit中进程组的滚动重新启动,monitoring,restart,monit,Monitoring,Restart,Monit,有人对我如何使用monit实现流程组的滚动重启有什么建议吗 提前感谢,, fturtle我不确定您所说的是哪台服务器。但我可以为您提供一个支持滚动重启的thin示例。(选项逐个:true) 所以对于monit你可以用 source /path/to/scripts/rvm rvm use your_gemset@some_ruby thin -C thin.yml restart 如果。。。然后执行“/path/to/thin\u restart.sh” 而thin_restart.sh将类似

有人对我如何使用monit实现流程组的滚动重启有什么建议吗

提前感谢,,
fturtle

我不确定您所说的是哪台服务器。但我可以为您提供一个支持滚动重启的thin示例。(选项
逐个:true

所以对于monit你可以用

source /path/to/scripts/rvm
rvm use your_gemset@some_ruby
thin -C thin.yml restart
如果。。。然后执行“/path/to/thin\u restart.sh”

thin_restart.sh
将类似于

source /path/to/scripts/rvm
rvm use your_gemset@some_ruby
thin -C thin.yml restart
thin.yml的内容看起来像

port: 1337
pid: tmp/pids/thin.pid
rackup: /path/to/config.ru
daemonize: true
servers: 2
onebyone: true
还有其他方法可以根据pid重新启动。您可以使用PID监视文件,并根据条件仅重新启动那些精简进程

e、 g

另一种方法是使用monit提供的组

扩展上述示例

check process app-1337
  with pid /path/to/app.1337.pid
  group thin
  group thin-odd
  start = 'thin -d -p 1337 start'
  stop  = 'thin -d -p 1337 -P /path/to/thin.1337.pid stop'
  if cpu usage > 50% then restart
check process app-1338
  with pid /path/to/app.1338.pid
  group thin
  group thin-even
  start = 'thin -d -p 1338 start'
  stop  = 'thin -d -p 1338 -P /path/to/thin.1338.pid stop'
  if cpu usage > 50% then restart
check process app-1337
  with pid /path/to/app.1339.pid
  group thin
  group thin-odd
  start = 'thin -d -p 1339 start'
  stop  = 'thin -d -p 1339 -P /path/to/thin.1339.pid stop'
  if cpu usage > 50% then restart
check process app-1340
  with pid /path/to/app.1340.pid
  group thin
  group thin-even
  start = 'thin -d -p 1340 start'
  stop  = 'thin -d -p 1340 -P /path/to/thin.1340.pid stop'
  if cpu usage > 50% then restart
因此,现在您可以执行以下操作来重新启动所有:

monit -g thin restart
或者,为了实现某种滚动重启,先重启奇数,然后重启偶数。 要仅重新启动奇数个,请执行以下操作:

monit -g thin-odd restart
甚至要重新启动:

monit -g thin-even restart