我正在运行supervisord来保持Redis和其他软件的运行。 但是,在我的生活中,我无法resque-web重新工作。
这是我包括的.ini:
[scheme:resque] 命令=的/ usr /本地/ RVM /gem/ruby2.0.0-P195 / bin中/ resque幅 自动启动=真 自动重启=真 用户=根 stdout_logfile =的/ var / lib中/ resque / stdout.log stderr_logfile =的/ var / lib中/ resque / stderr.log
不幸的是,当我运行service supervisor restart我在supervisord日志中得到以下内容:
INFO exited:resque(退出状态127;不是预期的)
根据谷歌的代码127是“命令未find”。 但是,如果我手动运行该命令,resque-web服务器启动就好了,输出:
[2013-05-24 00:03:09 -0600]启动'resque-web'... [2013-05-24 00:03:09 -0600]试图端口5678 ...
还值得注意的是,当supervisord尝试启动resque-web时,我在/var/lib/resque/stderr.log看到以下内容:
/ usr / bin / env:ruby_noexec_wrapper:没有这样的文件或目录
所以我很难过 我在supervisord上configuration的每一个软件都可以正常工作。 这是唯一让我头疼的人
所以我试图创build一个简单的bash脚本来解决这个问题,现在我在stderr.log文件中得到了一个不同的错误。 包含的.ini被更改为command=/usr/local/bin/resque-web
在/ usr / local / bin目录/ resque的Web
#!/斌/庆典 源/ usr / local / rvm / environments / default resque的Web
错误
usr / local / rvm / gems / ruby-2.0.0-p195 / gems / vegas-0.1.11 / lib / vegas / runner.rb:82:在app_dir中:也不是--app-dir EVN ['HOME '] defined(ArgumentError)
from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:66:in`initialize'
from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in`new'
from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in`'
from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in`load'
from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in`'
from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in`eval'
from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in`'
那么,看起来主pipe将不会使用resque-web,因为它是一个守护进程。 解决方法是创build/etc/cron.d/resque ,并将其放在下面:
SHELL = /斌/庆典 PATH = / sbin目录:/ bin中:/ usr / sbin目录:在/ usr / bin中:/usr/local/rvm/gems/ruby-2.0.0-p195/bin HOME = / * * * * * root resque-web
这运行每分钟,并重新启动服务器,如果它崩溃。 对我来说够好!