Настроил заказчику внутренний корпоративный jabber-сервер на основе Openfire. с хранением пользовательских данных в СУБД MySQL. Во время тестирования обраружился следующий баг: после перезагрузки сервера Openfire самостоятельно не запускался.
Сразу посетила мысль, что причина может быть в очередности загрузки. Видимо Openfire пытается запуститься раньше, чем стартует MySQL. Для проверки очередности загрузки воспользуемся возможностями утилиты rcorder:
# rcorder /etc/rc.d/* /usr/local/etc/rc.d/* | less |
Как оказалось, догадка была верна. Openfire запускался раньше, чем MySQL. Вырезка из вывода:
… /usr/local/etc/rc.d/openfire /etc/rc.d/apm /etc/rc.d/apmd /etc/rc.d/bootparams /etc/rc.d/hcsecd /etc/rc.d/bthidd /etc/rc.d/local /etc/rc.d/lpd /etc/rc.d/motd /etc/rc.d/mountlate /etc/rc.d/nscd /etc/rc.d/ntpd /etc/rc.d/powerd /etc/rc.d/rarpd /etc/rc.d/sdpd /etc/rc.d/rfcomm_pppd_server /etc/rc.d/rtadvd /etc/rc.d/rwho /etc/rc.d/timed /etc/rc.d/ugidfw /etc/rc.d/yppasswdd /usr/local/etc/rc.d/proftpd /etc/rc.d/LOGIN /usr/local/etc/rc.d/mysql-server … |
Для изменения порядка загрузки, отредактируем загрузочный скрипт /usr/local/etc/rc.d/openfire. Изменим параметр REQUIRE. До правки:
# REQUIRE: NETWORKING SERVERS |
После правки скрипта:
# REQUIRE: NETWORKING SERVERS mysql |
Проверяем теперь очередность запуска (rcorder /etc/rc.d/* /usr/local/etc/rc.d/* | less). Теперь все в порядке:
… /usr/local/etc/rc.d/mysql-server /usr/local/etc/rc.d/openfire … |
Теперь после перезагрузки сервера, Openfire корректно запускается…
Источник http://muff.kiev.ua/content/rcorder-proveryaem-poryadok-zagruzki-servisov