簡體   English   中英

在monit中滾動重啟進程組

[英]Rolling restart of process group in monit

有沒有人有任何關於如何使用monit實現滾動重啟進程組的建議?

提前謝謝,fturtle

我不確定你在說什么服務器。 但我可以為您提供一個支持滾動重啟的瘦身示例。 (選項onebyone: true

所以對於monit你可以使用類似的東西,

if ... then exec '/path/to/thin_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微調此重新啟動。 您可以使用pids監視文件,並根據條件僅重新啟動這些精簡進程。

例如

check process app-1337
  with pid /path/to/app.1337.pid
  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
  start = 'thin -d -p 1338 start'
  stop  = 'thin -d -p 1338 -P /path/to/thin.1338.pid stop'
  if cpu usage > 50% then restart

另一種方式是使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM