Я установил MongoDB через центр программного обеспечения в Ubuntu 16.04:
mongodb 1:2.6.10-0ubuntu1
Я полагаю, что это в настоящее время содержит MongoDB 2.6.10.
Я запускаю приложение на установке apache2 localhost и должен запуститься 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 ...
Поскольку меня работает просто выполнение sudo systemctl enable mongod
Установка
Это - метод, который я закончил тем, что использовал (от пользователя 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
см.:
Теперь 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/
ext4
в течение долгого времени и didn' t замечают что это doesn' t работа. Но должен быть некоторый способ сделать то же с systemd.
– Pilot6
30 August 2017 в 09:08
В то время как Вы разрабатываете Вас, может также иногда хотеть противоположное: иметь несколько локальных отделимых экземпляров, которые Вы запускаете индивидуально, а не одна глобальная установка...
mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345
Для меня это из-за неправильного разрешения пути дб. всего
chown mongodb:mongodb /var/lib/mongodb