
我運行是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.log
supervisord嘗試啟動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
它每分鐘運行一次,並在伺服器崩潰時重新啟動伺服器。對我來說夠好了!