【问题标题】:How do you restart Rails under Mongrel, without stopping and starting Mongrel如何在 Mongrel 下重启 Rails,而不停止和启动 Mongrel
【发布时间】:2010-09-09 14:35:20
【问题描述】:
有没有办法在 Mongrel 运行时重新启动 Rails 应用程序(例如,当您更改插件/配置文件时)。或者快速重启 Mongrel。 Mongrel 给出了这些提示,你可以,但你怎么做呢?
** 信号准备就绪。期限 => 停止。 USR2 => 重启。 INT => 停止(不重新启动)。
** Rails 信号已注册。 HUP => 重新加载(无需重新启动)。可能效果不好。
【问题讨论】:
标签:
ruby-on-rails
mongrel
【解决方案1】:
第一次发现当前的 mongrel pid 路径,例如:
>ps axf | fgrep 杂种
您将看到如下流程:
ruby /usr/lib64/ruby/gems/1.8/gems/swiftiply-0.6.1.1/bin/mongrel_rails start -p 3000 -a 0.0.0.0 -e development -P /home/xxyyzz/rails/ myappname/tmp/pids/mongrel.pid -d
获取 '-P /home/xxyyzz/rails/myappname/tmp/pids/mongrel.pid' 部分并像这样使用它:
>mongrel_rails restart -P /home/xxyyzz/rails/myappname/tmp/pids/mongrel.pid
将 USR2 发送到 PID 18481 的 Mongrel...完成。
我用它来从可怕的“断管”问题中恢复到 MySQL。
【解决方案2】:
如果您的应用集群的配置位于其他位置,您可以添加 -c 选项:
mongrel_rails cluster::restart -c /path/to/config
【解决方案3】:
在你的 Rails 主目录中
mongrel_rails cluster::restart
【解决方案4】:
例如,
killall -USR2 mongrel_rails