MongoDB bereitet sich manuell auf Upstart vor, läuft aber nicht

692
huggie

Ich bin auf Ubuntu 14.04.1 LTS.

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty 

Anstelle des von MongoDB bereitgestellten Systems, das 2.4 ist, möchte ich 2.6 verwenden. Daher habe ich MongoDB als ausführbare Datei heruntergeladen und einfach an den gewünschten Ort abgelegt. Dann habe ich meistens das Upstart-Skript mit dem 2.4-Paket kopiert:

description "MongoDB"  start on runlevel [2345] stop on runlevel [!2345]  limit nofile 64000 64000  kill timeout 300 # wait 300s between SIGTERM and SIGKILL.  pre-start script mkdir -p /data/db/ end script  script ENABLE_MONGODB="yes" if [ -f /etc/default/mongodb ]; then . /etc/default/mongodb fi if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb \ --exec /usr/local/bin/mongod -- --config /etc/mongodb.conf fi end script 

Wenn ich so manuell laufe:

sudo /usr/local/bin/mongod --config /etc/mongodb.conf 

Es läuft gut.

Aber wenn ich sudo start mongodbden Prozess benutze, stirbt er wahrscheinlich aus, da ich ihn nicht sehen konnte ps -ef. Das Upstart-Protokoll sagt nicht viel aus (/var/log/upstart/mongodb.log):

warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default 

Was kann das Problem sein?

0

1 Antwort auf die Frage

1
JakeGould

Sie sagen, dass Sie das getan haben:

Anstelle des von MongoDB bereitgestellten Systems, das 2.4 ist, möchte ich 2.6 verwenden. Daher habe ich MongoDB als ausführbare Datei heruntergeladen und einfach an den gewünschten Ort abgelegt.

Dies ist wirklich nicht die unterstützte und empfohlene Methode, auf der Sie MongoDB auf Ihrem System installieren sollten. Dem MongoDB-Team ist sehr wohl bewusst, dass offizielle Linux-Repositories nicht immer auf dem neuesten Stand der neuesten Versionen vieler Pakete sind. Daher stellen sie ihre eigene PPA für MongoDB bereit, wie hier erläutert . Ich würde empfehlen, das, was Sie gerade installiert haben, zu entfernen und stattdessen diese Schritte auszuführen.

Importieren Sie zunächst den vom Paketverwaltungssystem verwendeten öffentlichen Schlüssel:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 

Dann erstellen Sie eine Quelllistendatei für MongoDB:

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list 

Führen Sie jetzt apt-getmit aus update, um die Quellenliste zu aktualisieren:

sudo apt-get update 

Und schließlich installieren Sie MongoDB wie folgt direkt aus dem Repository:

sudo apt-get install -y mongodb-org 
Oh, das ist toll! Ich werde das stattdessen verwenden. Haben Sie eine Idee, wie Sie feststellen können, wie dieser Emporkömmling mongodb an mir stirbt? huggie vor 9 Jahren 0
@huggie Keine Ahnung, warum es so an dir sterben würde, aber ehrlich gesagt sollte man das Rad nicht so "neu erfinden". Sie haben höchstwahrscheinlich ein sehr eigenwilliges Problem für Ihr System geschaffen, das nicht leicht diagnostiziert werden kann. Und als Pro-Linux-Systemadministrator kann das Debuggen von Upstart / init.d-Skripts an einem guten Tag Tage dauern. Besser ist es, dies zu erleben und voranzukommen. JakeGould vor 9 Jahren 1
Danke für die Hilfe. Ich akzeptiere Ihre Antwort in zwei Minuten, da das System es jetzt nicht zulässt. huggie vor 9 Jahren 1
@Huggie Danke! Auch ich schaute wieder in das Upstart-Skript und sah das. Schauen Sie sich diesen Codeabschnitt an: `mongod - --config`. Was ist das extra "-" da drin? Es ist nicht in Ihrer manuellen Version des Startbefehls enthalten. Unabhängig davon, die offizielle MongoDB-Version aus dem Repo würde definitiv funktionieren, so dass diese Notiz nur als FYI veröffentlicht wird. JakeGould vor 9 Jahren 0
Psst! Beachten Sie, dass der Befehl, der ausgeführt wird und das "-" empfängt, "start-stop-daemon" ist. Denken Sie darüber nach, wie verhindert wird, dass "--config" von _that_ als Option interpretiert wird. Ich musste mich gerade unter http://unix.stackexchange.com/a/187540/5132 damit befassen. JdeBP vor 9 Jahren 0