【问题标题】:running delayed_job under monit with ubuntu使用 ubuntu 在监控下运行延迟作业
【发布时间】:2011-08-26 20:01:16
【问题描述】:

我正在努力让延迟工作在 rails 3.0.9(ruby 1.9.2)下工作。我成功运行的唯一方法是手动录制命令 rake jobs:work。 但我希望它在 rails 应用程序启动时自动启动。

我已在 ubuntu 下安装了 monit,并将其配置为启动位于我的应用程序中的文件。这失败看起来像:

check process delayed_job with pidfile /home/me/myapp/tmp/pids/delayed_job.pid
start program = "/home/me/myapp/script/delayed_job start"
stop program = "/home/me/myapp/script/delayed_job stop" 

并且我在delayed_job脚本文件中添加了环境设置:

#!/usr/bin/env ruby

    ENV['RAILS_ENV'] = "development"
    require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
    require 'delayed/command'
    Delayed::Command.new(ARGV).daemonize

当我运行命令“sudo monit start delay_job”时,我收到以下错误:

/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- bundler/setup (LoadError)

所以我猜这是因为 sudo 使用了错误版本的 ruby​​ 环境 然后我尝试了以下解决方案: rvm monit delayed_job

通过在启动程序/停止程序行中添加 rvm -S。 但它仍然失败并出现错误:找不到 rvm 命令

我的 rvm 目录位于我的主目录 /home/me/.rvm

我试图在 (sudo changes PATH - why?) 中找到解决方法,通过添加来更改 PATH 环境变量

/usr/bin/env PATH=/home/me/.rvm/bin:$PATH

“sudo monit start delay_job”命令成功!工人开始了。 但问题是:当我启动 sudo /etc/init.d/monit start 并查看系统日志时,我仍然得到 'delayed_job' failed to start

所以我不知道如何进行更多调查,如何获得更详细的监控错误。

【问题讨论】:

    标签: ruby-on-rails-3 delayed-job monit


    【解决方案1】:

    我终于成功解决了这个问题。 我像这样修改了monit文件:

    check process delayed_job with pidfile /home/me/myapp/tmp/pids/delayed_job.pid
    start program = "/bin/su - me -c 'cd /home/me/myapp/; script/delayed_job start'"
    stop program = "/bin/su - me -c 'cd /home/me/myapp/; script/delayed_job stop'"
    

    我还降级了守护进程 gem,因为最新版本似乎存在问题。所以我现在使用 daemons v 1.0.10

    我还修改了日志文件 /home/me/myapp/log/delayed_job.log 的权限,因为它似乎是在我的 root 之前创建的,我的用户无权访问它(我在测试使用“me”用户的命令“script/delayed_job start”)

    【讨论】:

      【解决方案2】:

      这是唯一对我有用且正确读取 ENV 的行

      start program = "/usr/local/rvm/bin/rvm-shell -c 'cd /var/www/[APP]/current/; RAILS_ENV=production bundle exec bin/delayed_job start'"

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 2011-09-11
        • 1970-01-01
        • 2017-02-04
        • 1970-01-01
        • 2012-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多