Wie starte ich den MongoDB Server beim Systemstart?


85

Ich muss meinen MongoDB-Server bei jedem Neustart des Systems neu starten. Wie konfiguriere ich es für den Start mit meinem Betriebssystem? Ich bin auf Ubuntu 11.04.


1
Ich frage mich, warum niemand hier Emporkömmling empfiehlt.
Tom

Antworten:


132

Ich hatte das gleiche "Problem" bei Debian Jessie und meine einfache Lösung ist:

systemctl enable mongod.service

Ich denke in Ubuntu ist es dasselbe.

- BEARBEITEN -

Laut den Kommentaren funktioniert es auch auf Ubuntu. Auf Ubuntu 18.04 LTS scheint es diese Lösung zu sein:

systemctl enable mongodb.service

Vielen Dank an @Adam. Vielleicht haben sie den Namen des Dienstes geändert


10
Hat für mich gearbeitet anUbuntu Mate 16.04.2 LTS
Muhammad Gelbana

2
Schade, dass es in der offiziellen Dokumentation keine Informationen zum Starten des Dienstes gibt.
UpTheCreek

2
Möglicherweise müssen Sie (sudo) systemctl start mongodden mongd-Dienst starten
Jeff Xiao

2
Funktioniert auch auf Ubuntu 18.04 LTS
89n3ur0n

1
Funktioniert bei mir nur , wenn ich ändern , mongod.serviceum mongodb.serviceauf Ubuntu 18.04 LTS - seltsam?
Adam

37

Wenn Sie MongoDB mit dem Advanced Packaging Tool (apt) installieren, werden Ihre Startskripts so konfiguriert, dass Mongo beim Systemstart automatisch ausgeführt wird.

Führen Sie die folgenden Schritte aus, um apt zunächst so zu konfigurieren , dass das Mongo-Paket heruntergeladen werden kann:

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

Füge diese Zeile zu sources.list hinzu und speichere:

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

Laden Sie dann Mongo mit dem Dienstprogramm apt-get herunter und installieren Sie es :

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

Wenn Sie Änderungen an der Konfiguration vornehmen möchten, bearbeiten Sie Ihre mongodb.conf und starten Sie neu: 

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

5
Wenn Sie es später so ändern möchten, dass MongoDB beim Start nicht automatisch gestartet wird, bearbeiten Sie es /etc/init/mongodb.conf.
kynan

11

Das Steuern aller init.d-Dienstverknüpfungen sollte mit dem Tool update-rc.d erfolgen

dh, um den Mongod-Daemon in den Standard-Runlevels einzuschalten (dh, um ihn beim Booten einzuschalten):

update-rc.d mongodb defaults

Weitere Informationen finden Sie unter https://help.ubuntu.com/community/UbuntuBootupHowto . Über diesen Link erfahren Sie alles, was Sie über das Festlegen von Programmen beim Booten wissen möchten.


2
Die 10gen MongoDB-Distribution verwendet keine Init-Skripte im System-V-Stil, die Sie bearbeiten müssen /etc/init/mongodb.conf.
kynan

muss ich das machen
Tofutim

5

Wenn Sie die MongoDB Community Edition installiert haben (dies ist die empfohlene Methode, da sie häufiger aktualisiert wird als das im Ubuntu-Paket-Repository verteilte Paket), konfigurierenmongod Sie das Start- / Stopp-Verhalten über das Init-Skript upstart /etc/init/mongod.conf , das standardmäßig den Dämon startet automatisch beim Booten

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

Wenn Sie nicht möchten, dass es automatisch startet, ersetzen Sie diese beiden Zeilen durch

stop on runlevel [023456]

Wird dadurch der Server gestartet, bevor sich jemand beim System anmeldet?
Gabriel Fair

@ GabrielFair Ja
kynan

5

Ich benutze Crontab für Ubuntu. Es funktioniert gut. Datei bearbeiten können

Sudo crontab –e 

Fügen Sie diese Zeile der Datei hinzu

@reboot sudo service mongod start &

Das "&" Seufzen am Ende hilft dabei, den Hintergrund zu bearbeiten.

Ctrl+ xDrücken Sie zum Verlassen "Y", wenn Sie dazu aufgefordert werden. Behalten Sie den Dateinamen "crontab" bei.


3

Wenn Sie Ubuntu 16.04 LTS haben, können Sie mongo aktivieren, um mit dem Booten zu beginnen. Geben Sie dies in Ihre Konsole ein:
sudo systemctl enable mongod
Ich habe diesen Ansatz mit MongoDB Community Edition 3.6 verwendet und er funktioniert. Starten Sie Ihren Computer neu und testen Sie, ob Mongo ausgeführt wird. Geben Sie Folgendes ein:
sudo service mongod status


3

Sie können den Befehl systemctl verwenden, um Ihren Mongo-Dienst bei der Ausführung beim Systemstart zu aktivieren.

Erstellen Sie einen Service so, dass

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

Platzieren Sie den Inhalt in der Datei

[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

Danach können Sie Servicebefehle wie

sudo service mongod start|stop|restart

und wenn du es dann beim maschinenstart nachholen willst, kannst du unter mongod eine datei erstellen /etc/init.d/


1

chkconfig --levels 235 mongod on?

Wobei mongodb der Name Ihres Dienstes ist


2
Die 10gen MongoDB-Distribution verwendet standardmäßig keine Init-Skripte im System-V-Stil (obwohl eines bereitgestellt wird), /etc/init/mongodb.confsondern bearbeitet sie .
kynan

@kynan Bearbeiten Sie es wie? Was ändere ich / füge ich der mongod.conf-Datei hinzu?
Kieveli

@ Kieveli: Siehe diese Antwort
Kynan

1

Ich habe diesen Beitrag konsequent als Ausgangspunkt verwendet, um ein neues Scherben-Rig in Betrieb zu nehmen. Es enthält einen Abschnitt zum Konfigurieren von Upstart, den ich auch verwendet habe.

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


1
Bitte posten Sie nicht "nur externe Links". Es ist möglich, dass der externe Link in Zukunft ausfällt und diese Antwort dann unvollständig ist. Zusätzlich zum Link posten Sie bitte den entsprechenden Teil des Artikels hier: zB. Veröffentlichen Sie den Teil mit der Aufschrift "Wie starte ich MongoDB Server beim Systemstart?" mit upstart.
23.

1

Wenn Sie MongoDB apt-getwie im MongoDB Ubuntu-Installationshandbuch beschrieben installieren , werden ein grundlegendes Startskript und eine Konfigurationsdatei mitgeliefert. (Verwendung einer Konfigurationsdatei wird dringend empfohlen)

Sie können hier auch nach einem alten Beitrag suchen , der auf ein init.dSkript verweist.

In beiden Fällen besteht die Grundvoraussetzung darin, dass Sie einen Dienst einrichten und dann so konfigurieren, dass der Computer gestartet und gestoppt wird. Dies ist eine bei Servern weit verbreitete Technik. Hierfür gibt es viele Tutorials.


2
nicht mehr der Fall in 16.04
chovy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.