首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Monit Ruby on Rails Sidekiq

Monit Ruby on Rails Sidekiq
EN

Stack Overflow用户
提问于 2012-11-18 03:11:35
回答 6查看 8.1K关注 0票数 6

我在试着给Sidekiq设置Monit到目前为止,我的配置文件如下所示:

代码语言:javascript
复制
 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

问题是,当我运行monit reload时,我收到一条消息,告诉我程序"bundle“不存在。

有人有解决这个问题的办法吗?

EN

回答 6

Stack Overflow用户

发布于 2013-08-09 09:35:40

在完成了我自己的monit和sidekiq配置之后,我可以分享我在运行ubuntu时的工作原理。

首先,如果你使用的是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安装保持一致,我更改了以下内容:

代码语言:javascript
复制
#source $HOME/.rvm/scripts/rvm
source /usr/local/rvm/scripts/rvm

etc/monit/monitrc中的我引用了upstart脚本并拥有:

代码语言:javascript
复制
# 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
票数 5
EN

Stack Overflow用户

发布于 2012-11-29 16:27:26

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

代码语言:javascript
复制
/bin/su - <username> -c 'bundle exec sidekiq -C /var/www/site/config/sidekiq.yml -P /var/www/site/tmp/pids/sidekiq.pid'

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

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

票数 4
EN

Stack Overflow用户

发布于 2013-05-05 00:36:43

这是我在github上写的要点:

代码语言:javascript
复制
check process sidekiq_production with pidfile /var/run/sidekiq_production.pid
        depends on redis-server
        start program = "/etc/init.d/sidekiq_production start" with timeout 90 seconds
        stop program = "/etc/init.d/sidekiq_production stop" with timeout 90 seconds
        if totalmem is greater than 200 MB for 2 cycles then restart # eating up memory?
        if 2 restarts within 3 cycles then timeout

我还在Debian上为sidekiq写了一个初始化脚本:https://gist.github.com/alain75007/5517948

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13433866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档