Я следил это руководство по CentOS 5.2 Mongrel Cluster для запуска mongrel_cluster при перезагрузке на CentOS 5.2. Однако мне приходится вручную запускать mongrel_cluster при перезагрузке.
Поскольку это не сработало, я последовал совету в Настройте Mongrel как службу и запустите ее автоматически на Centos 5.2. Ключевые биты:
chkconfig -add mongrel_cluster
chkconfig –level 345 mongrel_cluster on
Опять же ... Это не сработало: мне все равно нужно вручную запускать mongrel_cluster при загрузке. Наконец, я попытался добавить "@reboot ..." в свой crontab вот так:
RAILS_ROOT=/path/to/root
# Restart Ferret Drb server on host reboot:
@reboot ${RAILS_ROOT}/script/ferret_server --root=${RAILS_ROOT} -e production start
# Restart rails apps (via Mongrel) on host reboot:
@reboot /etc/init.d/mongrel_cluster start
но опять же ... Мне нужно вручную перезапустить и Монгрел, и Хорек!
Наконец, я проследил Как запустить DRb сервер при перезагрузке (linux) инструкции, но мне нужно вручную запускать Ferret DRb при перезагрузке ...
Это моя первая работа сисадмина, поэтому я даже не уверен, в какие файлы журналов смотреть ... Если вам нужна дополнительная информация, пожалуйста, помогите мне и дайте мне знать, где искать!
Ответы на Другой вопрос дал мне идею, которая, кажется, сработала. Я добавил следующее в свой /etc/rc.local файл:
# ... and restart Mongrel
su - MyUserName -c "/etc/init.d/mongrel_cluster start"
# ... and restart ferret
su - MyUserName -c "cd /path/to/rails_root && ./script/ferret_server --root=/path/to/rails_root -e production start"
... и черт возьми! Серверы Mongrel & Ferret DRb перезагружаются!
Есть ли соответствующий сценарий для вызова при завершении работы системы (т.е. для правильного завершения mongrel_cluster и ferret_server)?
Пит - вы всегда можете остановить mongrel_cluster, используя аналогичную команду в вашем сценарии rc:
su - YourUserName -c "/etc/init.d/mongrel_cluster stop"
Это стандартная обработка сценария initrc. Обычно вы обнаружите, что '/etc/init.d/имя сценария'может сопровождаться как минимум любым'Начало''стоп' или 'начать сначала'(последняя команда почти всегда пытается запустить стоп раздел сценария, за которым следует Начало сценарий.
Однако в этом нет необходимости. Когда система выключается, всем запущенным процессам отправляется сигнал завершения, что означает, что они должны нормально завершиться при завершении работы. Вы можете увидеть это на выходе терминала, когда он выключается, хотя я не уверен, что он по умолчанию регистрируется в CentOS. (кроме случаев, когда дворняга или хорек настроены на ведение бревен)
Надеюсь, это поможет.