У меня есть следующий сценарий в моем 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 перед необходимыми элементами?