Назад | Перейти на главную страницу

Запускайте rc.local только после запуска Mongodb в CentOs 7

У меня есть следующий сценарий в моем rc.local:

Это запускает службы на портах 8080, 8081, 8082, 8083. На самом деле это серверы узлов, которым НУЖЕН mongod для запуска.

Итак, я отредактировал /lib/systemd/system/rc-local.service и добавил:

After=network.target syslog.target mongod.service

Но нет: сценарии все равно не работают, потому что во время работы они обнаруживают, что сервер базы данных не работает.

Что я делаю не так? Как мне отладить это?

ОБНОВИТЬ: Теперь, когда я добавил After=, ошибка не в соединении mongoDb (я смотрел старые журналы), а в том, что rc-local вообще не запускается. Запуск вручную systemctl restart rc-local.service хотя работает ...

ОБНОВЛЕНИЕ 2: Принимая syslog.target out, и поэтому имея:

After=network.target mongod.service

имеет странный побочный эффект: ПОЛОВИНА серверов (2 из 4) запускается нормально, а другая ПОЛОВИНА не может подключиться к базе данных. Это заставляет меня думать, что systemd запускает mongodb, но он еще не готов принимать соединения при запуске rc-local

В качестве обходного пути почему бы вам не настроить mongodb, чтобы он не запускал использование systemctl, и не настроить его запуск в rclocal перед необходимыми элементами?