Monit Ruby on Rails Sidekiq

Bri*_*ian 6 monit ruby-on-rails-3 sidekiq

我正在尝试为Sidekiq设置Monit.这是我到目前为止配置文件的内容:

 check process sidekiq_site
  with pidfile /var/www/site/tmp/pids/sidekiq.pid
  start program = "bundle exec sidekiq -C /var/www/site/config/sidekiq.yml -P /var/www/site/tmp/pids/sidekiq.pid" with timeout 90 seconds
  if totalmem is greater than 200 MB for 2 cycles then restart # eating up memory?
  group site_sidekiq
Run Code Online (Sandbox Code Playgroud)

问题是,当我运行monit reload时,我收到的消息是程序"bundle"不存在.

有人有解决方案吗?

Dan*_*nny 5

在我自己的 monit 和 sidekiq 配置上工作后,我可以分享对我运行 ubuntu 有用的东西。

首先,如果您使用该发行版,则存在适用于 ubuntu 的 sidekiq upstart 脚本。有用于 sidekiq 和管理工人的脚本:https : //github.com/mperham/sidekiq/tree/master/examples/upstart/manage-one

当我使用 rvm 时,我在使用默认的 upstart 脚本时遇到了一些错误。检查 /var/logs/upstart/sidekiq-0.log 对问题有所了解。这一行:

exec bin/sidekiq -i ${index} -e production -C config/sidekiq.yml -P tmp/pids/sidekiq-${index}.pid

需要更改为exec bundle exec sidekiq+ 选项

然后,为了使所有内容与我的 rvm 安装保持一致,我更改了以下内容:

#source $HOME/.rvm/scripts/rvm
source /usr/local/rvm/scripts/rvm
Run Code Online (Sandbox Code Playgroud)

在 /etc/monit/monitrc 中,我引用了 upstart 脚本并具有:

# sidekiq
check process sidekiq
  with pidfile /var/www/apps/myapp/current/tmp/pids/sidekiq-0.pid
  start program = "/usr/bin/sudo start sidekiq index=0"
  stop program = "/usr/bin/sudo stop sidekiq index=0"
  if totalmem is greater than 500 MB for 2 cycles then restart # eating up memory?
  if 3 restarts within 5 cycles then timeout
Run Code Online (Sandbox Code Playgroud)


gay*_*vat 4

检查这个: https: //groups.google.com/forum/? fromgroups=#!topic/rubyversionmanager/0abB9jlqi_Y 如果您使用rvm,

/bin/su - <username> -c 'bundle exec sidekiq -C /var/www/site/config/sidekiq.yml -P /var/www/site/tmp/pids/sidekiq.pid'
Run Code Online (Sandbox Code Playgroud)

如果您从用户启动 monit,请在 .bash_profile 中设置 $HOME。

或调查其答案: https: //github.com/mperham/sidekiq/issues/506