Ruby-on-Rails

Monit 和薄而未發現的寶石

  • September 9, 2012

我一直在使用 Monit 監控我的瘦伺服器,一切正常,直到我將 Rails 版本從 2.3.4 升級到 2.3.14。現在,當我嘗試使用 monit 啟動 Thin 時,它給了我一個未找到的 gem 錯誤:

Missing the Rails 2.3.14 gem. Please `gem install -v=2.3.14 rails`

我認為這可能是 GEM PATH 問題,並嘗試在啟動命令中設置 GEM_HOME 和 PATH 變數:

check process thin3001
 with pidfile /home/blahblah/apps/Vocab/shared/pids/thin.3001.pid
 start program = "/usr/bin/env PATH=/usr/lib/ruby/gems/1.8/gems GEM_HOME=/usr/lib/ruby/gems/1.8/gems /usr/bin/ruby /usr/bin/thin -C /etc/thin/vocab.yml start -o 3001"
 stop program = "/usr/bin/ruby /usr/bin/thin -C /etc/thin/vocab.yml stop -o 3001"
 if totalmem > 150.0 MB for 5 cycles then restart
group thin

這很奇怪,因為如果我在控制台中執行 start 命令它工作正常,只有在 monit 內我才會收到缺少的 Gems 錯誤。

好的,遇到了一些關於 monit 沒有載入控制台環境的問題,我猜它沒有載入正確的 Ruby 路徑或其他東西。無論如何,讓它與以下工作:

start program = "/bin/su - user -c '/usr/bin/thin -C /etc/thin/vocab.yml start -o 3000'"

“/bin/su - user -c”載入使用者的shell環境(你需要用你的使用者名替換它)。

我懷疑最新rack版本不適用於目前版本的thin. 解除安裝 rack 1.1.3 以查看您的問題是否消失:

gem uninstall rack -v=1.1.3

引用自:https://serverfault.com/questions/423451