MongoDB просто поддерживает версии Ubuntu Long Term Support (LTS). Последним является Ubuntu 14.04 LTS, где процессом инициализации управляет компания Upstart, принадлежащая Canonical. Однако я использую Ubuntu 15.10 со стандартным процессом инициализации Linux в SystemD. Поэтому я не могу запустить сервис MongoDB при загрузке.
Когда я читаю статус службы или пытаюсь запустить ее, отображается сообщение «Не удалось загрузить»:
> systemctl status mongod
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
> sudo systemctl start mongod
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.
Я использую официальный выпуск MongoDB 3.2 Community Edition (mongodb-org) с https://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/, а не метапакет MongoDB 2.6 (mongodb) из Ubuntu. репозиторий.
> sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
> echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
> sudo apt-get update
> sudo apt-get install -y mongodb-org
Кто-то знает, как запустить MongoDB с SystemD?
Ответы:
Мне удалось запустить сервис MongoDB с SystemD при загрузке:
Я удалил официальный метапакет (mongodb-org) v3.2, затем установил метапакет (mongodb) v2.6 из репозитория Ubuntu:
Создайте файл конфигурации службы, как показано ниже:
Проверьте в списке, включена ли служба или отключена, используя команду ниже:
Если он отключен или отсутствует в списке, включите его:
Проверить снова:
Теперь вы можете управлять службой в процессе инициализации SystemD:
Наслаждайтесь!
источник
/lib
./lib
. Части определения сервиса достаточно хороши для запуска сервиса, дополнительные настройки не оказывают существенного влияния, поэтому они считаются дополнительными. Если вы добавитеPIDFile=/var/run/mongodb/mongod.pid
строку иrun
инструкцию вExecStart=
строке, вы получите ошибку, потому что я использую метапакет (mongodb) 2.6, а не метапакет (mongodb-org) 3.2.chown
их, прежде чем mongod запустится через systemctl. Ничего, что установочные документы не сказали бы мне, но в случае, если это полезно!При установке по умолчанию из репозитория MongoDB, для автоматического запуска службы mongod все, что вам нужно сделать, это включить службу system.d:
systemctl enable mongod.service
(обратите внимание на название сервиса mongo d , а не mongodb )ПРИМЕЧАНИЕ: это тестируется как на Debian / GNU Jessie 8.x с systemd, так и на Ubuntu Xerus 16.04 LTS.
источник
/lib/systemd/system/mongod.service
моем Ubuntu 16.04