2017-02-02 3 views
1

У меня есть сервер RHEL7, который является частью кластера Mongo. Есть три процесса mongo, которые я хотел бы автоматически запускать при загрузке системы. Один mongod, один арбитр и один mongos:Система RHEL7 автоматически запускает сервисы mongo?

  • /USR/бен/mongod -f /etc/mongo_shard001.conf
  • /USR/бен/mongod -f /etc/mongoarb.conf
  • /USR/бен/mongos -f /etc/mongos.conf

Я пытался создать Systemd услуги для этих команд, т.е.

[Unit] 
Description=mongo configuration server 
After=network.target 

[Service] 
User=mongod 
Group=mongod 
ExecStart=/usr/bin/mongod -f /etc/mongoconf.conf 

[Install] 
WantedBy=multi-user.target 

Когда я пытаюсь сделать sudo systemctl daemon-reload && sudo systemctl start mongoconf, я получаю эту ошибку

● mongoconf.service - mongo configuration server 
    Loaded: loaded (/etc/systemd/system/mongoconf.service; disabled; vendor preset: disabled) 
    Active: failed (Result: exit-code) since Thu 2017-02-02 14:38:34 AWST; 20s ago 
    Process: 5114 ExecStart=/usr/bin/mongod -f /etc/mongoconf.conf (code=exited, status=1/FAILURE) 
Main PID: 5114 (code=exited, status=1/FAILURE) 

Feb 02 14:38:34 mdb1 systemd[1]: Started mongo configuration server. 
Feb 02 14:38:34 mdb1 systemd[1]: Starting mongo configuration server... 
Feb 02 14:38:34 mdb1 systemd[1]: mongoconf.service: main process exited, code=exited, status=1/FAILURE 
Feb 02 14:38:34 mdb1 systemd[1]: Unit mongoconf.service entered failed state. 
Feb 02 14:38:34 mdb1 systemd[1]: mongoconf.service failed. 

Я также попытался с помощью раздвоенной типа с Pid файла:

[Unit] 
Description=mongo configuration server 
After=network.target 

[Service] 
User=mongod 
Group=mongod 
ExecStart=/usr/bin/mongod -f /etc/mongoconf.conf --pidfilepath /var/lib/mongoconf/pid --fork 
Type=forking 
PIDFile=/var/run/mongodb/mongoconf/pid 

[Install] 
WantedBy=multi-user.target 

Но дает эту ошибку

● mongoconf.service - mongo configuration server 
    Loaded: loaded (/etc/systemd/system/mongoconf.service; disabled; vendor preset: disabled) 
    Active: failed (Result: exit-code) since Thu 2017-02-02 14:45:36 AWST; 4s ago 
    Process: 5256 ExecStart=/usr/bin/mongod -f /etc/mongoconf.conf --pidfilepath /var/lib/mongoconf/pid --fork (code=exited, status=1/FAILURE) 
Main PID: 5114 (code=exited, status=1/FAILURE) 

Feb 02 14:45:36 mdb1 systemd[1]: Starting mongo configuration server... 
Feb 02 14:45:36 mdb1 mongod[5256]: about to fork child process, waiting until server is ready for connections. 
Feb 02 14:45:36 mdb1 mongod[5256]: forked process: 5258 
Feb 02 14:45:36 mdb1 systemd[1]: mongoconf.service: control process exited, code=exited status=1 
Feb 02 14:45:36 mdb1 systemd[1]: Failed to start mongo configuration server. 
Feb 02 14:45:36 mdb1 systemd[1]: Unit mongoconf.service entered failed state. 
Feb 02 14:45:36 mdb1 systemd[1]: mongoconf.service failed. 

Запуск Монго конфигурации вручную отлично работает и создает файл pid

/usr/bin/mongod -f /etc/mongoconf.conf --pidfilepath /var/lib/mongoconf/pid --fork 

Версия mongod, которую я использую, является одной из mongodb.com, и я установил ее после руководства по установке.

db version v3.4.1 
git version: 5e103c4f5583e2566a45d740225dc250baacfbd7 
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013 
allocator: tcmalloc 
modules: none 
build environment: 
    distmod: rhel70 
    distarch: x86_64 
    target_arch: x86_64 

из этого репо

[mongodb-org-3.4] 
name=MongoDB Repository 
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ 
gpgcheck=1 
enabled=1 
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc 

Я интересно, если я буду об этом неправильном пути, есть лучший способ сделать это?

+0

любые замечания или идеи приветствуются – stackoverflows

ответ

0

Вот мое решение

сделать Баш скрипт с этими линиями

/usr/bin/mongod -f /etc/mongo_shard001.conf 
/usr/bin/mongod -f /etc/mongoarb.conf 
/usr/bin/mongos -f /etc/mongos.conf 

, а затем добавить эту строку в кронтаб

@reboot root cd /foldername && ./scriptname.sh 

Systemd будет лучшим решением, если кто-нибудь знает, как его настроить.

документация Монго не поможет

0

Я знаю, что ты сказал rhel7, но так как это единственный ответ, который приходит на DuckDuckGo на этот вопрос, это может быть полезно. Под Ubuntu 15 и выше:

sudo systemctl enable mongod.service

Смежные вопросы