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

mongoDb 2.6 не запускается в Oracle Linux с помощью сценария инициализации

Установлен MongoDb 2.6.3 на OL 6.3 с использованием yum, но сценарий инициализации по умолчанию, похоже, не работает как при попытке остановить, так и при запуске службы mongod. Я мог проследить проблему с остановкой в $pid_file быть обнаруженным как _/var/run/mongodb/mongod.pid (т.е. с пробелом перед дорожкой). После того, как это пространство было удалено, монгода можно было остановить.
Однако я не могу запустить его с помощью того же сценария (так было и до стоп-исправления). После выдачи service mongod start команда, я получаю ERROR: child process failed, exited with error number 1 и в логах: ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: Success, сразу после ***** SERVER RESTARTED ***** строка, плюс пустой pidfile создается в указанном месте. Больше ничего не отображается, даже если я увеличиваю подробность журнала. Mongod запускается нормально, если я запускаю его как root, но вышесказанное происходит, если я использую непривилегированного пользователя (mongod). Я мог обнаружить это, выполнив команду, которая в конечном итоге запускается с изменением пользователя и без него - runuser -s /bin/bash mongod -c "ulimit -S -c 0 ; numactl --interleave=all /usr/bin/mongod -f /etc/mongod.conf"

Дополнительная информация - я использую формат конфигурации 2.4:

logpath   = /data/mongodb/log/mongod.log
logappend = true
fork      = true
dbpath    = /data/mongodb/db
auth      = true
port        = 27017
pidfilepath = /var/run/mongodb/mongod.pid
traceExceptions = true
verbose = true
vvvv = true

keyFile=/data/mongodb/keyfile

Проверка разрешений на пути к pidfile показала, что все в порядке (rx для родителей, rwx для mongodb). Кроме того, на другом компьютере (та же ОС) mongoDb 2.4 работает нормально. Любая идея?

РЕДАКТИРОВАТЬ - если я не использую pidfile (не установлен pidfilepath), все работает нормально, но это не считается решением, а скорее обходным путем ...

Похоже, это связано с SERVER-14679 "(CentOS 7 / RHEL 7) сценарий init.d должен создать каталог для файла pid, если он отсутствует", которая исправлена ​​в версии 2.6.5.

А пока отредактируйте сценарий инициализации в соответствии с это коммит.

Добавьте в билет примечание, что он применяется к Oracle Linux на случай, если измененный сценарий инициализации запустит MongoDB должным образом.