Как запустить сервер MongoDB при запуске системы?


86

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


1
Интересно, почему никто не рекомендует использовать выскочку здесь.
Том

Ответы:


133

У меня была та же самая «проблема» в Debian jessie, и мое простое решение:

systemctl enable mongod.service

Я думаю, что в Ubuntu это то же самое.

-- РЕДАКТИРОВАТЬ --

Согласно комментариям, это работает и на Ubuntu. На Ubuntu 18.04 LTS кажется, что это решение:

systemctl enable mongodb.service

Благодаря @ Адам. Может быть, они изменили название службы


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 Packaging Tool (apt), он настроит ваши сценарии запуска для автоматического запуска Mongo при загрузке системы.

Шаги следующие: сначала настройте apt, чтобы иметь возможность загрузить пакет Mongo:

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

Добавьте эту строку в sources.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 не используются сценарии инициализации в стиле System-V, их нужно редактировать /etc/init/mongodb.conf.
Кинан

мне нужно сделать это?
тофутим

5

Если вы установили MongoDB Community Edition (это рекомендуемый способ, поскольку он получает более частые обновления, чем пакет, распространяемый в репозитории пакетов Ubuntu), вы настраиваете поведение запуска / остановки сmongod помощью сценария инициализации upstart /etc/init/mongod.conf , который по умолчанию запускает демон автоматически при загрузке

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

Если вы не хотите, чтобы он запускался автоматически, замените эти 2 строки на

stop on runlevel [023456]

Будет ли это запускать сервер, прежде чем кто-либо войдет в систему?
Ярмарка Габриэля

@GabrielFair Да
Кинан

5

Я использую crontab для Ubuntu. Работает нормально. Чтобы иметь возможность редактировать файл

Sudo crontab –e 

Добавить эту строку в файл

@reboot sudo service mongod start &

Вздох «&» в конце помогает ему работать в фоновом режиме.

Ctrl+ xдля выхода нажмите «Y» один раз. И сохраните имя файла как "crontab".


3

Если у вас Ubuntu 16.04 LTS, вы можете включить mongo при загрузке, набрав это на своей консоли:
sudo systemctl enable mongod
я использовал этот подход с MongoDB Community Edition 3.6, и он работает. Перезагрузите компьютер и проверьте, работает ли mongo, набрав:
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 по умолчанию не используются сценарии инициализации в стиле System-V (хотя они и предоставляются), отредактируйте их /etc/init/mongodb.conf.
Кинан

@kynan Редактировать это как? Что я могу изменить / добавить в файл mongod.conf?
Кьевели

@Kieveli: увидеть этот ответ
Кинан

1

Я последовательно использовал этот пост в качестве отправной точки для запуска и запуска новой осколочной установки. Он включает в себя раздел о настройке upstart, который я также использовал.

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.