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

时间:2008-09-16 16:25:24

标签: ruby-on-rails mongrel

有没有办法在Mongrel运行时重新启动Rails应用程序(例如,当您更改了插件/配置文件时)。或者快速重启Mongrel。 Mongrel给出了这些提示,但你怎么做?

**信号已准备就绪。 TERM =>停。 USR2 =>重新开始。 INT =>停止(不重启)。

**已注册Rails信号。 HUP =>重新加载(不重启)。它可能效果不好。

4 个答案:

答案 0 :(得分:5)

如果应用程序集群的配置位于其他位置,则可以添加-c选项:

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

答案 1 :(得分:5)

首先发现当前的杂种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

在PID 18481将USR2发送给Mongrel ...完成。

我用它来从可怕的“破管”恢复到MySQL问题。

答案 2 :(得分:4)

在你的rails主目录中

mongrel_rails cluster::restart

答案 3 :(得分:3)

例如,

killall -USR2 mongrel_rails