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

Mongodb не начинает использовать systemctl

Когда я пытаюсь запустить службу mongodb (systemctl start mongodb), я получаю эту ошибку в journalctl:

Mar 21 15:36:18 redhat7 systemd[1]: Started High-performance, schema-free document-oriented database.
Mar 21 15:36:18 redhat7 systemd[1]: Starting High-performance, schema-free document-oriented database...
Mar 21 15:36:18 redhat7 mongod[14333]: about to fork child process, waiting until server is ready for con
Mar 21 15:36:18 redhat7 mongod[14333]: forked process: 14335
Mar 21 15:36:18 redhat7 systemd[1]: mongod.service: main process exited, code=exited, status=1/FAILURE
Mar 21 15:36:18 redhat7 systemd[1]: Unit mongod.service entered failed state.
Mar 21 15:36:18 redhat7 systemd[1]: mongod.service failed.

Но выполнение следующей команды от имени пользователя root работает!

sudo -u mongod /usr/bin/mongod -f /etc/mongod1.conf

/lib/systemd/system/mongod.service

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongod
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod1.conf

[Install]
WantedBy=multi-user.target

По умолчанию для systemd служба проста. Это означает, что он работает на переднем плане, и если он завершается, служба считается остановленной.

В вашем файле конфигурации mongod есть что-то вроде:

processManagement: fork: true

в нем, что вызывает mongod развиться на задний план. Есть два способа исправить это, лучший - изменить fork в /etc/mongod1.conf к ложному. Другой - установить Type=forking в [Service] раздел .service файл.