Benötigen Sie Hilfe bei der Verwendung des Homebrew-Befehls „Dienste“.

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“.

Antworten (3)

services war ein "versteckter" Befehl in Homebrew. Es gab eine Reihe von ihnen, die in derbrew helpAusgabe 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 servicesund einfach eine Plist-Datei dafür erstellen. Erstellen Sie zum Beispiel ~/Library/LaunchAgents/org.mongodb.mongod.plistmit:

<?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 installjetzt 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.