如何在 Mongrel 下重新启动 Rails,而不停止和启动 Mongrel
有没有办法在 Mongrel 运行时重新启动 Rails 应用程序(例如,当您更改插件/配置文件时)。 或者快速重新启动 Mongrel。 Mongrel 给出了这些提示,您可以,但是您如何做到呢?
** 信号准备就绪。 术语 => 停止。 USR2=> 重新开始。 INT=> 停止(不重新启动)。
** 已注册 Rails 信号。 HUP=> 重新加载(无需重新启动)。 可能效果不太好。
Is there a way to restart the Rails app (e.g. when you've changed a plugin/config file) while Mongrel is running. Or alternatively quickly restart Mongrel. Mongrel gives these hints that you can but how do you do it?
** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart).
** Rails signals registered. HUP => reload (without restart). It might not work well.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果应用程序集群的配置位于其他位置,您可以添加 -c 选项:
You can add the -c option if the config for your app's cluster is elsewhere:
首先发现当前的 mongrel pid 路径,如下所示:
您将看到如下流程行:
ruby /usr/lib64/ruby/gems/1.8/gems/swiftiply-0.6.1.1/bin/mongrel_rails start -p 3000 -a 0.0.0.0 -edevelopment -P /home/xxyyzz/rails/myappname/tmp/pids/mongrel.pid -d
采取 '-P /home/xxyyzz/rails/myappname/tmp/pids/mongrel.pid' 部分并像这样使用它:
将 USR2 发送到 PID 18481 的 Mongrel...完成。
我用它来从可怕的“恢复” MySQL 问题的“管道损坏”。
1st discover the current mongrel pid path with something like:
you will see a process line like:
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
Take the '-P /home/xxyyzz/rails/myappname/tmp/pids/mongrel.pid' part and use it like this:
Sending USR2 to Mongrel at PID 18481...Done.
I use this to recover from the dreaded "Broken pipe" to MySQL problem.
在你的 Rails 主目录中
in your rails home directory
例如,
For example,