我一直使用 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