2017-02-02 1 views
1

Ich habe einen RHEL7-Server, der Teil eines Mongo-Clusters ist. Es gibt drei Mongo-Prozesse, die ich beim Systemstart automatisch starten möchte. Ein mongod, ein Schiedsrichter und ein mongos:RHEL7 Systemd startet Mongo-Dienste automatisch?

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

ich habe versucht, systemd Dienste zu schaffen für diese Befehle, dh

[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 

Wenn ich versuche zu tun sudo systemctl daemon-reload && sudo systemctl start mongoconf, ich bekomme diese Fehlermeldung

● 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. 

Ich habe auch einen gegabelten Typ mit pid-Datei versucht, mit:

[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 

Aber gibt diesen Fehler

● 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. 

die Mongo Config manuell starten funktioniert gut und erstellt die PID-Datei

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

Die Version von mongod, die ich verwende, ist die von mongodb.com, und ich habe sie nach ihrer Installationsanleitung installiert.

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 

aus diesem Repo

[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 

Ich frage mich, ob ich darüber in die falsche Richtung gehe, gibt es einen besseren Weg, dies zu tun?

+0

Kommentare oder Ideen sind willkommen – stackoverflows

Antwort

0

Hier ist meine Lösung

mit diesen Zeilen zu Ihrer crontab

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

systemd wäre eine bessere Lösung, wenn jemand

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

und dann fügen Sie diese Zeile ein Bash-Skript machen weiß, wie man es einrichtet.

der Mongo Dokumentation ist keine Hilfe

0

Ich weiß, Sie sagten rhel7 aber da es für diese Frage auf DuckDuckGo kommen die einzige Antwort ist, kann dies nützlich sein. Unter Ubuntu 15 und bis:

sudo systemctl enable mongod.service