Rcorder - проверяем порядок загрузки сервисов

Версия для печатиОтправить другуPDF version

Настроил заказчику внутренний корпоративный 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 корректно запускается...

Ваша оценка: Нет Средняя: 4.8 (9 голосов)

Вставай, Україно!

Литература