Как правильно обеспечить запуск `mongod` при запуске системы в версии 16.04?

Как правильно обеспечить запуск `mongod` при запуске системы в версии 16.04?

Я установил MongoDB через центр приложений в Ubuntu 16.04:

mongodb 1:2.6.10-0ubuntu1

Я считаюэтотв настоящее время содержит MongoDB 2.6.10.

Я запускаю приложение на локальном хосте Apache2 и вынужден запускать его mongodвручную каждый раз при запуске системы:

mongod

Я хочу, чтобы он запускался автоматически.

Я столкнулся с двумя основными способами сделать это:

update-rc.d mongodb defaults

от: https://askubuntu.com/a/89914/367134

что приводит к:

update-rc.d mongodb defaults
insserv: fopen(.depend.stop): Permission denied

Но это не привело к ошибке:

sudo update-rc.d mongodb defaults

Я также видел несколько ссылок на редактирование «файла конфигурации MongoDB», но я не уверен, о чем идет речь, поскольку вижу файлы конфигурации в нескольких местах:

  • /etc/mongodb.conf
  • /etc/init/mongodb.conf
  • /etc/init.d/mongodb

А оказавшись в нужном файле, я не уверен, что там менять.

Я /etc/init/mongodb.confвижу:

start on runlevel [2345]
stop on runlevel [!2345]

Как правильно обеспечить mongodзапуск при загрузке системы в версии 16.04?

Я читалэтот, и заглянул /etc/rc2.dи увидел:

S01mongodb@                       --> /etc/init.d/mongodb

Обновлять:

После запуска предложения:

sudo systemctl enable mongodb

и затем перезапуск, запуск systemctl status mongodbвозвращает:

* mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2016-04-18 23:42:28 AEST; 7min ago
     Docs: man:mongod(1)
  Process: 655 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=100)
 Main PID: 655 (code=exited, status=100)

Apr 18 23:42:27 me-comp systemd[1]: Started An object/document-oriented database
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Main process exited, code=exited, status=100/n/a
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Unit entered failed state.
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Failed with result 'exit-code'.  

Разрешение проблем

/var/lib/mongodb= drwxr-xr-x mongodb mongodb.
/var/log/mongodb= drwxr-xr-x mongodb mongodb.
/var/log/mongodb/mongodb.log= -rw-r--r-- mongodb nogroup.
/var/log/mongodb/mongod.log= -rw-r--r-- mongodb mongodb.
/data/db/mongod.lock= -rwxrwxr-x me meи 0 байт.
/data= drwxr-xr-x root root.
/data/db= drwxr-xr-x me root.

Содержимое файла конфигурации

/etc/mongodb.conf:

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 127.0.0.1
#port = 27017 ...

решение1

Установка

Это метод, который я в итоге использовал (из комментария пользователя Adam C относительно использования более новой версии mongodb). Мне это помогло, но я не эксперт в этом вопросе.

https://askubuntu.com/a/757385/367134

Затем мне пришлось сделать сервисный файл, см.:

https://askubuntu.com/a/694226/367134

И отредактируйте путь в этом файле службы с:

/etc/mongodb.conf 

к:

/etc/mongod.conf

А затем заставьте mongodb запускаться при запуске системы с помощью:

sudo systemctl enable mongodb

видеть:

https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

Теперь mongodb запускается при запуске системы 16.04.

Удаление старой версии MongoDB

ДоЯ сделал это, однако мне пришлось удалить существующие установки и каталоги, что я и сделал следующим образом (шаги в основном изhttps://askubuntu.com/a/497144/367134):

# go to /etc/apt/sources.list.d and remove any mongodb lists, then:

# sanity check - see what is installed
sudo dpkg -l | grep mongo

# remove all packages 
sudo apt-get remove mongodb* --purge
sudo apt-get autoremove

# remove old directories
sudo rm -r -f /var/lib/mongodb/
sudo rm -r -f /var/log/mongodb/

решение2

В процессе разработки вам иногда может понадобиться и обратное: иметь несколько локальных разделяемых экземпляров, которые вы запускаете по отдельности, а не одну глобальную установку...

mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345

решение3

Для меня работает просто делатьsudo systemctl enable mongod

решение4

Для меня это из-за неправильного разрешения пути к базе данных. Просто

chown mongodb:mongodb /var/lib/mongodb

Связанный контент