Что корректный путь состоит в том, чтобы гарантировать, что 'mongod' запускается на системном запуске в 16,04?

Я установил 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 ...
6
задан 13 April 2017 в 15:25

4 ответа

Поскольку меня работает просто выполнение sudo systemctl enable mongod

0
ответ дан 14 April 2017 в 01:25
  • 1
    Должен был искать добавляющие параметры начальной загрузки в личинке, но это, казалось, работало.Спасибо. – User 4574 30 August 2017 в 09:45

Установка

Это - метод, который я закончил тем, что использовал (от пользователя 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/
0
ответ дан 14 April 2017 в 01:25
  • 1
    Это раньше работало с выскочкой. Я don' t использование ext4 в течение долгого времени и didn' t замечают что это doesn' t работа. Но должен быть некоторый способ сделать то же с systemd. – Pilot6 30 August 2017 в 09:08

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

mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345
0
ответ дан 14 April 2017 в 01:25
  • 1
    @User4574, который я добавил, как сделать это с systemd. – Pilot6 30 August 2017 в 09:10

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

chown mongodb:mongodb /var/lib/mongodb
0
ответ дан 14 April 2017 в 01:25
  • 1
    " только если это не работает, ШИММИРУЕТ попытку загрузить stage2 его собственным внутренним сертификатом " действительно ли правильно сказать тогда, что контейнер дурачит UEFI путем обеспечения его сертификата от имени другого двоичного файла? Однако, хотя UEFI дурачили, КОНТЕЙНЕР выполнит свою собственную ключевую проверку. Другими словами, существует две проверки (1) ключевая проверка UFEI (сначала), когда это перестало работать (2), КОНТЕЙНЕР предоставляет свой собственный сертификат UEFI и выполняет его собственную ключевую проверку, не используя UEFI' s ключи, вместо этого ключи, встроенные в КОНТЕЙНЕР статически. – direprobs 30 August 2017 в 09:33

Другие вопросы по тегам:

Похожие вопросы: