將 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
使用者=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
來源 /usr/local/rvm/environments/default
resque-網絡

錯誤

usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:82:in `app_dir': 也不是--app-dir 既不是EVN[ 'HOME '] 定義(參數錯誤)
        來自 /usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:66: 在「初始化」中
        來自 /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

好吧,看起來主管不會與 resque-web 一起使用,因為它是一個守護程序。解決方案是創建/etc/cron.d/resque並將以下內容放入其中:

外殼=/bin/bash
路徑=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/gems/ruby-2.0.0-p195/bin
首頁=/
* * * * * 根resque-web

它每分鐘運行一次,並在伺服器崩潰時重新啟動伺服器。對我來說夠好了!

相關內容