Ich würde gerne mongod im Hintergrund laufen lassen, als eine immer anwesende Sache. Was wäre der beste Weg, dies zu tun? Irgendwie kann ich MySQL beim Start ausführen und es läuft immer im Hintergrund. 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.
mac-osx
unix
background-process
mongodb
Ryan Montgomery
quelle
quelle
npm install pm2 -g
+pm2 start mongod
+pm2 save
Ist ein schöner Cross - Plattform - Weg , um alle Hintergrundprozesse über mehrere Sitzungen hinweg am Laufen zu halten.Antworten:
Der MongoDB-Dämon (Mongod) verfügt über eine Befehlszeilenoption, mit der der Server im Hintergrund ausgeführt werden kann.
Diese Befehlszeilenoption erfordert, dass Sie auch eine Datei angeben, in der Nachrichten protokolliert werden sollen (da die aktuelle Konsole nicht verwendet werden kann). Ein Beispiel für diesen Befehl sieht folgendermaßen aus:
Sie können dies in eine /etc/init.d/mongod bash-Skriptdatei einfügen. Wenn der Dienst beim Start ausgeführt werden soll, erstellen Sie die Standardsymbolverknüpfungen (S ## & K ##) in /etc/rc#.d/. In diesem Tutorial wird dieser Vorgang genauer erläutert. Scrollen Sie nach unten zum Abschnitt "Init Script Activation". Dies hat auch den zusätzlichen Vorteil, dass Befehle wie ...
quelle
--syslog
, dass alles nur in das Systemprotokoll geschrieben wird.Da Sie auf einem Mac arbeiten, sollten Sie zur Installation von MongoDB Homebrew verwenden (Sie müssen Homebrew installieren, wenn Sie dies noch nicht getan haben):
Angenommen, die installierte Version trägt den Namen
2.0.6-x86_64
. Fügen Sie dann die LaunchAgent-Plist-Datei hinzu, die sie für Sie generiert:Dies wird
mongod
jetzt und bei jedem Neustart des Computers im Hintergrund gestartet .quelle
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
Führen Sie den folgenden Befehl aus:
quelle
Um im Hintergrund ausgeführt zu werden, beginnen Sie klassisch mit nohup some_command -to launch &. Das heißt
also, nohup &, setzen Sie den Befehl, den Sie ausführen möchten, in den Hintergrund zwischen nohup und &. Es wird so ausgeführt, wie Sie es möchten. Es wird weiter ausgeführt, nachdem Sie das Terminal geschlossen oder sich abgemeldet haben. Sie können es als ein anderer Benutzer über sudo starten. Fügen Sie es zum Ersetzen der Init-Skripte hinzu, damit es beim Start ausgeführt wird (Sie wissen nicht, wie sie es nennen). Die Ausgabe wird in eine Datei mit dem Namen nohup.out geschrieben, in der Sie sie gestartet haben
quelle
Die beste Möglichkeit, ein Programm beim Start unter OS X zum Laufen zu bringen, besteht darin, einen LaunchDaemon zu erstellen (siehe Apple-Dokumentation und einige der von Apple bereitgestellten Daemons in / System / Library / LaunchDaemons) und diesen in / Library zu installieren / LaunchDaemons. Lingon kann Ihnen beim Erstellen der .plist-Datei helfen.
quelle