2016-04-08 4 views
1

Я хотел бы запустить mongoDB как услугу. Экземпляр должен быть сконфигурирован как однокомпонентный репликас, чтобы иметь возможность подключить экземпляр elasticSearch к нему с помощью the connector.Не удается запустить mongoDB как услугу

Так что я продлил mongod.conf:

... 
replication: 
    replSetName: "singleNodeRepl" 
... 

Я пробовал разные способы, чтобы начать теперь mongod, но ничего не работает.

Когда я пытаюсь запустить службу по $ service mongod start, выбрасывается следующее сообщение об ошибке:

start: Rejected send message, 1 matched rules; type="method_call", sender=":1.106" (uid=1225 pid=26018 comm="start mongod ") interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init") 

Когда я выполнить эту команду, как sudo, его «работает» и после (Что не лучше-практике, не так ли?) показывается сообщение:

mongod start/running, process 26034 

Но процесс 26034 не существует и ps aux | grep mongo также ничего не показывает ?!

Следующая попытка: Запустить как обычное приложение показано

mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl 

Вот следующее исключение:

2016-04-08T14:31:35.192+0200 I STORAGE [initandlisten] exception in initAndListen: 98 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating 
2016-04-08T14:31:35.192+0200 I CONTROL [initandlisten] dbexit: rc: 100 

Все это хорошо, когда я бегу ~$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl, но это еще не моя цель: Это не работает как сервис и его запуск с правами root.

Манго-лог-файл часто остается нетронутым. Но последние строки любопытны:

2016-04-08T14:24:56.242+0200 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted 
2016-04-08T14:24:56.242+0200 I -  [initandlisten] Fatal Assertion 28578 
2016-04-08T14:24:56.242+0200 I -  [initandlisten] 
***aborting after fassert() failure 

MongoDB-27017.sock существует, но удаление (что было предложено в любом месте) не помогло.

Основано на эрос выше, если tried serveral solutions, но ничего не помогает.

Я думаю, что это очень простая ошибка ... но какой?

[edit:] Я обнаружил, что я, возможно, должен был указать конфигурационное местоположение. Так что (работает, но плохо) команда выглядит следующим образом:

$ sudo mongod --dbpath /var/lib/mongodb/ --replSet SingleNodeRepl --config /etc/mongod.conf 

Это приводит следующее сообщение об ошибке:

warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default 

То старая вещь, которая была решением this problem и вдруг больше не работает !?

+0

В журналах я заметил, что файл блокировки не может быть создан или открыт. Это может быть проблема с правами пользователя? Каковы разрешения для ''/var/lib/mongodb/''? –

+0

'rwxr-xr-x 4 mongodb mongodb 4096 Apr 8 14:31 mongodb' – MUmla

+0

Вы пытались удалить оба файла .sock и .lock? –

ответ

0

У меня были проблемы с остановкой и запуском mongod в качестве услуги. Оказывается, возникла проблема с обновленным сценарием. Я нашел это discussion, который, казалось, исправить.

Предложенное решение было довольно много: (копия вставки в настоящее время)

vim /etc/init.d/mongod

ищет функцию остановки() (и начать() функцию для хорошей меры) и удалить кавычки $ PIDFile в следующем линия.

killproc -p $PIDFILE -d 300 /usr/bin/mongod

+0

интересно. mongod отсутствует в /etc/init.d/ на моей машине ?! Но я сделал все упомянутое здесь (https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu) во время установки ?! Конечно! Это как-то связано с переключением с init.d на SysV на ubuntu! Исследование в процессе ... – MUmla

+0

Может быть эта проблема: http://stackoverflow.com/questions/10733201/mongodb-is-not-starting-in-ubuntu – MUmla

+0

Было бы странно, если бы вы следовали инструкциям ubuntu и didn 'получить файл mongod. Возможно, создайте его, как было предложено. –

0

ли это:

sudo rm /var/lib/mongodb/mongod.lock 
mongod --repair 
sudo service mongodb start 

Позвольте мне знать, если это не работает!

+0

Я сделал это уже так, как указано в вопросе. Когда я это делаю (с правильным dbpath), я получаю эту ошибку: 'Исключение в initAndListen: 98 Невозможно создать/открыть файл блокировки: /var/lib/mongodb/mongod.lock errno: 13 Разрешено исключение Является экземпляром mongod уже запущен ?, завершение 'Но mongod.lock не существует (больше). Псих. – MUmla

Смежные вопросы