Ruby-on-Rails
Monit 和薄而未發現的寶石
我一直在使用 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