【发布时间】:2014-09-09 11:09:00
【问题描述】:
我正在使用 monit 启动一组工作人员来运行 qless,这是一个用于后台作业的排队系统。我的设置在 /etc/monit/conf.d 中有 20 个这样的文件:
check process qless-1 with pidfile /srv/app/shared/tmp/pids/qless-1.pid
start program = "/bin/bash -c 'cd /srv/app/current && RAILS_ENV=prod2 BUNDLE_GEMFILE=/srv/app/current/Gemfile QUEUES=jobs /usr/local/rbenv/shims/bundle exec rake -f /srv/app/current/Rakefile qless:work_with_pidfile[/srv/app/shared/tmp/pids/qless-1.pid] >> /srv/app/shared/log/qless-1.log 2>&1'"
stop program = "/bin/bash -c '/bin/kill `/bin/cat /srv/app/shared/tmp/pids/qless-1.pid`'"
每个文件都引用自己的 pid 文件。启动环境并让应用程序运行大约需要一分钟,我们经常需要重新启动它们。问题是 monit 似乎总是以串行方式启动/重新启动事物。这意味着所有工作人员上线大约需要 20 分钟,而重新启动一切的时间也差不多。 monit 不是所有关于并行运行的事情吗?我不敢相信这是正确的行为,那么我做错了什么疯狂的事情呢?谢谢!
【问题讨论】:
标签: ubuntu parallel-processing monit