В настоящее время я не могу запустить mongodb обычной командой sudo service mongodb start
. Когда я это делаю, я получаю что-то вроде:
mongodb start/running, process 23387
, однако впоследствии такой процесс не выполняется, и журнал mongodb не показывает ничего нового. Однако mongodb запускается при перезагрузке, и его можно остановить с помощью sudo service mongodb stop
.
Это скорее неудобство, чем ограничитель игры, но я заинтригован - что происходит ??
Оказалось, что start-stop-daemon
(используется скриптом init) знает о других экземплярах mongodb, которые я запускал из командной строки. Когда я остановил эти экземпляры, я смог нормально запустить свой основной mongodb.
Более постоянное решение - сказать start-stop-daemon
создать pid-файл и проверить его при определении, запущен ли уже mongodb. С моей установкой Ubuntu по умолчанию (1: 2.0.6-1ubuntu4) скрипт init только проверяет, выполняется ли исполняемый файл mongodb (см. --exec /usr/bin/mongod
в /etc/init/mongodb.conf
).
Для справки, этот поток говорит об этой проблеме, а этот вопрос говорит о несколько похожей ситуации.
Другая вероятность; Когда мы устанавливаем и проверяем monggodb с помощью sudo
, каталоги mongodb могут быть созданы root'ом по ошибке.
Итак, проверьте каталоги с помощью команд ll /var/lib/mongodb
и ll /var/log/mongodb
.
Если владелец выглядит как root
, смените владельца на mongodb
, используя sudo chown mongodb:mongodb /var/lib/mongodb -R
, который я испытал!