Monit、Thin 和 Unfound Ges

Monit、Thin 和 Unfound Ges

我一直使用 Monit 来监控我的 Thin 服务器,一切正常,直到我将 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

这很奇怪,因为如果我在控制台中运行启动命令,它可以正常工作,只有在 monit 中我才会收到缺少 Gems 的错误。

答案1

好的,我遇到了一些关于 monit 未加载控制台环境的问题,我猜它没有加载正确的 Ruby 路径或其他问题。无论如何,使用以下命令让它正常工作:

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

“/bin/su - user -c”加载用户的 shell 环境(您需要将其替换为您的用户名)。

答案2

我怀疑最新版本rack不适用于当前版本thin。卸载 rack 1.1.3 以查看问题是否消失:

gem uninstall rack -v=1.1.3

相关内容