Init-Skriptänderungen für MongoDB

483
user598529

Wir haben MongoDB (Version 3.0) sowohl im Standalone- als auch im Cluster-Modus in der Produktion. Derzeit standen wir vor einem Problem, das im Wesentlichen besagt:

Unreines Herunterfahren erkannt, daher kann der Mongod nicht gestartet werden.

  1. Nach dem Debugging erfuhren wir, dass Mongod unterschiedliche pid-Werte zeigte (O / p von ps -> ie
ps -eo pid,cmd | grep "/usr/bin/mongod" | grep -v "grep" | awk '') and there was different pid in /var/run/mongodb/mongod.pid. 
  1. In einem zweiten Szenario führte das Testteam mehrere Neustartvorgänge aus. In diesem Fall kam es zu einer Situation, in der sich der Mongod im Status "Ausführen" befand, die PID-Datei jedoch fehlte.

Für das erste Szenario haben wir einfach das Init-Skript geändert, um zu prüfen, ob die laufende PID von der vorhandenen PID abweicht, und mongod.piddann einfach die laufende PID in die mongod.pidDatei zu schreiben .

Jede Hilfe, um diese Szenarien zu verstehen, wird sehr geschätzt.

2

1 Antwort auf die Frage

0
Adam C

Es gibt also einige Gründe, warum dies passieren kann, einschließlich dieses Fehlers, der sich ziemlich nahe an Ihrer Situation anhört (und in einem späteren Build von 3.0 entsprechend dem Ticket behoben wird).

Es gibt auch die Tatsache, dass einige Daemonisierungsprozesse erfordern, dass der Prozess mit fork = false gestartet wird, um ordnungsgemäß zu funktionieren und die PID richtig zu machen. Weitere Informationen finden Sie unter SERVER-7254 .

Dies sind die zwei wahrscheinlichsten Ursachen, die wahrscheinlich spezifischere Informationen benötigen (genaue Version von MongoDB, Betriebssystem usw.), um zu versuchen, für etwas anderes zu reproduzieren.