如何在 Mongrel 下重启 Rails,而不停止和启动 Mongrel
Posted
技术标签:
【中文标题】如何在 Mongrel 下重启 Rails,而不停止和启动 Mongrel【英文标题】:How do you restart Rails under Mongrel, without stopping and starting Mongrel 【发布时间】:2010-09-09 14:35:20 【问题描述】:有没有办法在 Mongrel 运行时重新启动 Rails 应用程序(例如,当您更改插件/配置文件时)。或者快速重启 Mongrel。 Mongrel 给出了这些提示,你可以,但你怎么做呢?
** 信号准备就绪。期限 => 停止。 USR2 => 重启。 INT => 停止(不重新启动)。
** Rails 信号已注册。 HUP => 重新加载(无需重新启动)。可能效果不好。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于如何在 Mongrel 下重启 Rails,而不停止和启动 Mongrel的主要内容,如果未能解决你的问题,请参考以下文章
带有 RVM 的 Rails mongrel 无法启动 - mongrel_rails (MissingSourceFile)
mongrel rails - 以编程方式报告它在哪个端口上运行