Frage Wie kann ich Mongod im Hintergrund unter Unix (Mac OSX) laufen lassen?


Ich würde gerne Mongod im Hintergrund als etwas immer Gegenwärtiges betreiben. Was wäre der beste Weg, dies zu tun? So wie ich MySQL beim Start ausführen kann und es immer nur im Hintergrund läuft. Vielleicht sind es nur ein paar Bash-Skripte, aber es wäre schön zu hören, ob es einen besseren Weg gibt. Wenn es nur Bash ist - wie würde das aussehen? Vielen Dank.


43
2017-07-06 02:54


Ursprung


npm install pm2 -g + pm2 start mongod + pm2 save ist ein netter plattformübergreifender Weg, um jeden Hintergrundprozess über Sitzungen hinweg laufen zu lassen. - Jthorpe


Antworten:


Der MongoDB-Daemon (mongod) verfügt über eine Befehlszeilenoption, um den Server im Hintergrund auszuführen ...

--fork

Für diese Befehlszeilenoption müssen Sie außerdem eine Datei angeben, in die Nachrichten protokolliert werden (da die aktuelle Konsole nicht verwendet werden kann). Ein Beispiel für diesen Befehl sieht folgendermaßen aus:

mongod --fork --logpath /var/log/mongod.log

Sie könnten dies in eine /etc/init.d/mongod Bash-Skript-Datei einfügen. Um den Dienst beim Start ausführen zu lassen, erstellen Sie die standardmäßigen symbolischen Links (S ## & K ##) innerhalb von /etc/rc#.d/. Hier ist ein Anleitung Das erklärt diesen Prozess genauer. Scrollen Sie nach unten zum Abschnitt "Init Script Activation". Dies hat auch den zusätzlichen Vorteil, Befehle wie ...

service mongod status
service mongod start
service mongod stop

72
2017-09-14 23:02



Ich kann das in Windows nicht tun. - Malik Brahimi
@MalikBrahimi Siehe stackoverflow.com/q/15185012/544342 - WAF
./bin/mongod --fork --logpath = logs / mongod.log --dbpath = data / db funktionierte für mich - Selvakumar Esra
Wenn Sie keine zusätzliche Protokolldatei erstellen möchten, gibt es auch die Option --syslog in dem alles nur in das Systemprotokoll geschrieben wird. - Markus Graf
@Jesse Webb. Und wird es weiterlaufen, nachdem ich mich abmelde, zum Beispiel die ssh-Verbindung? - Miguel


Da du auf einem Mac bist, solltest du verwenden Homebrew um MongoDB zu installieren (du musst Homebrew installieren, falls du es noch nicht getan hast):

brew install mongodb

Angenommen, die Version, die installiert wurde, wird benannt 2.0.6-x86_64. Fügen Sie dann die LaunchAgent-Plist-Datei hinzu, die für Sie generiert wird:

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/2.0.6-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Dies wird gestartet mongod im Hintergrund jetzt und bei jedem Neustart des Computers.


10
2018-06-13 16:46



aktualisierte: mkdir -p ~/Library/LaunchAgents  cp /usr/local/Cellar/mongodb/3.2.10/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents  launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist - helsont


versuche den folgenden Befehl auszuführen:

mongod --fork --syslog

3
2017-07-26 01:37





Klassisch, um im Hintergrund zu starten, beginnen Sie einfach mit
nohup some_command - um & zu starten
Das ist also nohup &, lege den Befehl, den du im Hintergrund ausführen willst zwischen nohup und &. Es läuft wie Sie, es läuft weiter, nachdem Sie das Terminal geschlossen oder sich abgemeldet haben. Du könntest es als einen anderen Benutzer über Sudo starten. Um es beim Start auszuführen, fügen Sie es zum Ersetzen der Init-Skripte hinzu (Sie wissen nicht, wie sie es nennen). Es wird jede Ausgabe in eine Datei schreiben, wo Sie es gestartet haben, namens nohup.out


0
2017-07-06 04:45





Der beste Weg, um ein Programm beim Start von OS X zu starten, besteht darin, einen LaunchDaemon zu erstellen (siehe Apple's Dokumente, und werfen Sie einen Blick auf einige von Apple gelieferte Dämonen in / System / Library / LaunchDaemons) und installieren Sie es unter / Library / LaunchDaemons. Lingon kann Ihnen helfen, die .plist-Datei zu erstellen.


0
2017-07-06 05:37