将 resque-web 添加到 Supervisord

将 resque-web 添加到 Supervisord

我正在努力supervisord让 Redis 和其他软件正常运行。但是,我无论如何也去不了resque-web工作。

这是我要包含的 .ini:

[程序:resque]
命令 = /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web
自动启动=true
自动重启=true
用户=root
stdout_logfile=/var/lib/resque/stdout.log
stderr_logfile=/var/lib/resque/stderr.log

不幸的是,当我运行时,service supervisor restart我在日志中收到以下内容supervisord

INFO 退出:resque(退出状态 127;非预期)

根据谷歌代码 127是“未找到命令”。但是,如果我手动运行该命令,resque-web 服务器会正​​常启动并输出以下内容:

[2013-05-24 00:03:09 -0600] 正在启动“resque-web”...
[2013-05-24 00:03:09 -0600] 尝试端口 5678...

还值得注意的是,当/var/lib/resque/stderr.logSupervisord 尝试启动 resque-web 时,我看到了以下内容:

/usr/bin/env: ruby​​_noexec_wrapper:没有此文件或目录

所以我被难住了。我在supervisord上配置的所有其他软件都运行正常。只有这个让我头疼...

编辑1

因此,我尝试创建一个简单的 bash 脚本来解决这个问题,现在我在文件中得到了不同的错误stderr.log。我包含的 .ini 被更改为command=/usr/local/bin/resque-web

在/usr/local/bin/resque-web

/bin/bash #!/bin/bash
源 /usr/local/rvm/environments/default
救援网

错误

usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:82:in `app_dir': nor --app-dir 也没有定义 EVN['HOME'] (ArgumentError)
        来自 /usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:66:in `初始化'
        来自 /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in `new'
        来自 /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in `'
        来自 /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in `load'
        来自 /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in `'
        来自 /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `eval'
        来自 /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `'

答案1

嗯,看来,supervisor 无法与 resque-web 配合使用,因为它是一个守护进程。解决方案是创建/etc/cron.d/resque并放入以下内容:

外壳=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/gems/ruby-2.0.0-p195/bin
主页=/
* * * * * 根目录 resque-web

它每分钟运行一次,如果服务器崩溃则重新启动。对我来说已经足够好了!

相关内容