如何在 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的主要内容,如果未能解决你的问题,请参考以下文章

减少 Mongrel Rails 内存占用并提高性能?

带有 RVM 的 Rails mongrel 无法启动 - mongrel_rails (MissingSourceFile)

mongrel rails - 以编程方式报告它在哪个端口上运行

使用 Mongrel 在 Windows 上运行 Ruby On Rails

Rails 应用程序和 Mongrel 的奇怪问题

何时使用 Mongrel 作为 Rails 应用程序的 Web 服务器?