Ich habe MongoDB kürzlich mit Homebrew installiert. Einige Artikel im Internet raten dazu, Mongo mit dem folgenden Befehl zu starten:
brew services start mongo
Aber wenn ich diesen Befehl verwende, erhalte ich die folgende Meldung:
Error: Unknown command: services
Ich habe versucht, online nach diesem Problem zu suchen. Aber bisher kein Glück. Was könnte hier das Problem sein? Ich habe Homebrew so installiert, wie es auf ihrer Website angegeben ist. Warum funktioniert diese Funktion bei mir nicht?
Und die Manpage enthält keine Informationen zum Befehl „services“.
services
war ein "versteckter" Befehl in Homebrew. Es gab eine Reihe von ihnen, die in derbrew help
Ausgabe nicht vorhanden waren. Es ist, wie es bei undokumentierten Befehlen üblich ist, aus dem offiziellen Repository verschwunden und zu einem " externen Befehl " geworden, der in einem anderen Add-On-Repository verwaltet wird (in diesem Fall ein Kernpunkt, da es so einfach ist).
Sie können es in Ihrem Homebrew-Setup installieren, indem Sie Folgendes ausführen:
> curl -o /usr/local/bin/brew-services.rb https://gist.githubusercontent.com/lwe/766293/raw/75a7907004bbff0eb3b072d1d951be2cfe7e5020/brew-services.rb
> chmod +x /usr/local/bin/brew-services.rb
> brew services help
usage: [sudo] brew services [--help] <command> [<formula>]
Small wrapper around `launchctl` for supported formulas, commands available:
cleanup Get rid of stale services and unused plists
list List all services managed by `brew services`
restart Gracefully restart selected service
start Start selected service
stop Stop selected service
Options, sudo and paths:
sudo When run as root, operates on /Library/LaunchDaemons (run at boot!)
Run at boot: /Library/LaunchDaemons
Run at login: /Users/ian/Library/LaunchAgents
Alternativ können Sie überspringen services
und einfach eine Plist-Datei dafür erstellen. Erstellen Sie zum Beispiel ~/Library/LaunchAgents/org.mongodb.mongod.plist
mit:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.mongodb.mongod</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/Cellar/mongodb/2.6.4/bin/mongod</string>
<string>run</string>
<string>--config</string>
<string>/usr/local/Cellar/mongodb/2.6.4/mongod.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>UserName</key>
<string>{your_username}</string>
<key>WorkingDirectory</key>
<string>/usr/local</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
<key>StandardOutPath</key>
<string>/usr/local/var/log/mongodb/output.log</string>
</dict>
</plist>
Wechseln Sie einfach {your_username}
zu Ihrem tatsächlichen Benutzernamen und führen Sie dann Folgendes aus:
launchctl load ~/Library/LaunchAgents/org.mongodb.mongod.plist
um die plist bei launchd zu registrieren. Sie können MongoDB jetzt starten und stoppen mit:
launchctl start org.mongodb.mongod
launchctl stop org.mongodb.mongod
Beachten Sie, dass die obige Plist-Lösung dieser hervorragenden Stack Overflow-Antwort entnommen wurde .
Es ist jetzt extern:
brew tap homebrew/services
brew services install
, brew services install
jetzt arbeiten.
Es gibt eine nützliche GUI auf der MongoDB-Website, wenn Sie Dateien nicht manuell ändern möchten.
http://blog.mongodb.org/post/28925264384/macosx-preferences-pane-for-mongodb
Das MacOSX-Einstellungsfenster für MongoDB zielt darauf ab, eine einfache und effiziente Benutzeroberfläche bereitzustellen, um den Status eines lokalen MongoDB-Servers zu steuern, genau wie das MySQL-Einstellungsfenster.