如何在不停止和启动Mongrel的情况下重新启动Rails?

8
有没有一种方法可以在Mongrel运行时重新启动Rails应用程序(例如,当您更改了插件/配置文件时)?或者快速重启Mongrel。Mongrel给出了这些提示,说明您可以这样做,但是如何操作呢?
** 信号已准备就绪。TERM => 停止。USR2 => 重启。INT => 停止(不重启)。
** Rails信号已注册。HUP => 重新加载(无需重启)。可能效果不佳。
4个回答

5

首先,使用以下命令查找当前 Mongrel pid 路径:

>ps axf | fgrep mongrel

你会看到一个进程行类似于:

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...完成。

我使用这个方法来解决可怕的 "Broken pipe" 到 MySQL 的问题。


5

如果您的应用程序集群的配置文件存放在其他位置,则可以添加-c选项:

mongrel_rails cluster::restart -c /path/to/config

4

在你的 Rails 主目录下

mongrel_rails cluster::restart

3
例如,
killall -USR2 mongrel_rails

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接