Как перезапустить Rails под Mongrel, без остановки и запуска Mongrel - PullRequest
8 голосов
/ 16 сентября 2008

Есть ли способ перезапустить приложение Rails (например, когда вы изменили файл плагина / конфигурации) во время работы Mongrel. Или в качестве альтернативы быстро перезапустите Mongrel. Монгрел дает намеки на то, что вы можете, но как вы это делаете?

** Сигналы готовы. СРОК => Стоп. USR2 => перезагрузка. INT => стоп (без перезапуска).

** Рельсовые сигналы зарегистрированы. HUP => перезагрузить (без перезапуска). Это может не сработать.

Ответы [ 4 ]

5 голосов
/ 18 сентября 2008

1-й откройте текущий путь pid монгрела с помощью чего-то вроде:

> ps axf | фгреп дворняга

вы увидите строку процесса, такую ​​как:

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 разработка -P / home / xxyyzz / rails / myappname / tmp / pids / mongrel.pid -d

Возьмите часть '-P /home/xxyyzz/rails/myappname/tmp/pids/mongrel.pid' и используйте ее так:

> Перезапуск mongrel_rails -P /home/xxyyzz/rails/myappname/tmp/pids/mongrel.pid

Отправка USR2 Монгрелу с PID 18481 ... Готово.

Я использую это для восстановления от страшной «сломанной трубы» к проблеме MySQL.

5 голосов
/ 16 сентября 2008

Вы можете добавить опцию -c, если конфигурация для кластера вашего приложения находится в другом месте:

mongrel_rails cluster::restart -c /path/to/config
4 голосов
/ 16 сентября 2008

в вашем домашнем каталоге рельсов

mongrel_rails cluster::restart
3 голосов
/ 16 сентября 2008

Например,

killall -USR2 mongrel_rails
...