Як запустити сервер MongoDB при запуску системи?


85

Я повинен запускати свій сервер MongoDB кожного разу, коли система перезапускається. Як налаштувати його для запуску з ОС? Я на Ubuntu 11.04.


1
Цікаво, чому тут ніхто не рекомендує використовувати перезавантаження.
Том

Відповіді:


132

У мене була така ж «проблема» щодо Debian Джессі, і моє просте рішення:

systemctl enable mongod.service

Я думаю, що в Ubuntu це те саме.

- EDIT -

Згідно з коментарями, він працює і на Ubuntu. Для Ubuntu 18.04 LTS, здається, це рішення:

systemctl enable mongodb.service

Дякуємо @Adam. Можливо, вони змінили назву служби


10
Працював для мене наUbuntu Mate 16.04.2 LTS
Мухаммед Гелбана

2
Шкода, що в офіційній документації про початок послуги немає інформації.
UpTheCreek

2
можливо, потрібно (sudo) systemctl start mongodзапустити службу mongd
Джефф Сяо

2
Також працює на ubuntu 18.04 LTS
89n3ur0n

1
Працює тільки для мене , якщо я міняю mongod.serviceна mongodb.serviceна Ubuntu 18.04 LTS - дивно?
Адам

37

Якщо ви встановите MongoDB за допомогою Advanced Advanced Packaging Tool (apt), він налаштує ваші сценарії запуску для автоматичного запуску Mongo, коли система завантажиться.

Виконайте наступні кроки: спочатку налаштуйте apt, щоб мати можливість завантажити пакет Mongo:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo nano /etc/apt/sources.list

Додайте цей рядок до source.list та збережіть:

deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen

Потім завантажте та встановіть Mongo за допомогою утиліти apt-get :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mongodb-10gen

Якщо ви хочете внести будь-які зміни для налаштування, відредагуйте mongodb.conf та перезапустіть: 

sudo nano /etc/mongodb.conf
sudo service mongod restart

5
Якщо ви хочете пізніше змінити його, щоб MongoDB не запускався автоматично при запуску, відредагуйте /etc/init/mongodb.conf.
кинан

11

Контроль усіх посилань служби init.d слід здійснювати за допомогою інструменту update-rc.d

тобто увімкнути демон mongod у рівні за замовчуванням (тобто увімкнути його під час завантаження):

update-rc.d mongodb defaults

Див. Https://help.ubuntu.com/community/UbuntuBootupHowto для отримання додаткової інформації. Це посилання розповідає про все, що ви хочете знати про налаштування програм під час завантаження.


2
Розподіл 10gen MongoDB не використовує сценарії init у стилі System-V, вам потрібно редагувати /etc/init/mongodb.conf.
кинан

мені це потрібно робити?
tofutim

5

Якщо ви встановили MongoDB Community Edition (що є рекомендованим способом, оскільки він отримує більш часті оновлення, ніж пакет, що поширюється у сховищі пакунків Ubuntu), ви налаштовуєте поведінку запуску / зупинкиmongod через сценарій instart instart /etc/init/mongod.conf , який за замовчуванням запускає демон автоматично під час завантаження

start on runlevel [2345]
stop on runlevel [06]

Якщо ви не хочете, щоб воно почалося автоматично, замініть ці 2 рядки

stop on runlevel [023456]

Чи запустить це сервер, перш ніж хтось увійде в систему?
Ярмарок Габріеля

@GabrielFair Так
kynan

5

Я використовую crontab для Ubuntu. Це чудово працює. Щоб мати можливість редагувати файл

Sudo crontab –e 

Додайте цей рядок у файл

@reboot sudo service mongod start &

"&" Зітхання в кінці допомагає йому працювати в фоновому режимі.

Ctrl+ xдля виходу, натисніть кнопку "Y", коли буде запропоновано. І збережіть ім'я файлу як "crontab".


3

Якщо у вас є Ubuntu 16.04 LTS, ви можете дозволити монгові почати завантажуватися, набравши це у вашій консолі:
sudo systemctl enable mongod
я використовував цей підхід із MongoDB Community Edition 3.6, і він працює. Перезавантажте машину і перевіріть, чи працює монго:
sudo service mongod status


3

Ви можете використовувати команду systemctl, щоб увімкнути службу mongo при запуску під час завантаження системи.

Створіть такий сервіс, що

sudo nano /etc/systemd/system/mongodb.service

Помістіть вміст у файл

[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

після цього ви зможете використовувати службові команди типу

sudo service mongod start|stop|restart

а потім, якщо ви хочете зробити це під час завантаження машини, ви можете створити файл mongod під /etc/init.d/


1

chkconfig --levels 235 mongod on?

де mongodb - назва вашої служби


2
Розподіл 10gen MongoDB не використовує стандартні скрипти init у стилі System-V (хоча такий надається), /etc/init/mongodb.confзамість цього редагуйте .
кинан

@kynan Редагувати як? Що я можу змінити / додати у файл mongod.conf?
Kieveli

@Kieveli: дивіться цю відповідь
kynan

1

Я послідовно використовував цю посаду як вихідну точку, щоб отримати нове обладнання для заточування. Він включає розділ про налаштування запуску, який я також використовував.

http://joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/


1
Будь ласка, не публікуйте "лише зовнішні посилання". Не виключено, що зовнішнє посилання в майбутньому може знизитися, і ця відповідь тоді буде неповною. Крім посилання, будь ласка, опублікуйте тут відповідну частину статті: напр. опублікувати частину, яка показує "Як запустити сервер MongoDB при запуску системи?" за допомогою швидкого запуску.
rigved

1

Якщо ви встановите MongoDB, apt-getяк описано в посібнику з установки MongoDB Ubuntu , він поставиться із базовим сценарієм запуску та файлом налаштування. (настійно рекомендується використовувати конфігураційний файл)

Ви також можете подивитися тут стару публікацію, яка посилається на init.dсценарій.

У будь-якому випадку основне передумови полягає в тому, що ви налаштовуєте службу, а потім налаштовуєте для запуску-зупинки з комп'ютера. Це досить поширена техніка для серверів, є багато підручників для того, щоб робити саме це.


2
більше не так у 16.04
човен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.