Potrzebujesz pomocy przy użyciu polecenia Homebrew „Usługi”

9

Ostatnio zainstalowałem MongoDB przy użyciu homebrew. Kilka artykułów w Internecie zaleca uruchomienie mongo za pomocą następującego polecenia:

brew services start mongo

Ale kiedy używam tego polecenia, pojawia się następujący komunikat:

Error: Unknown command: services

Próbowałem wyszukać ten problem online. Ale jak dotąd brak szczęścia. W czym może być problem? Zainstalowałem homebrew, jak podano na ich stronie internetowej. Dlaczego ta funkcja nie działa dla mnie?

A strona podręcznika nie ma żadnych informacji dotyczących polecenia „services”.

Ganz7
źródło

Odpowiedzi:

8

services było „ukrytym” poleceniem w Homebrew. Było ich kilka, których nie było nabrew helpwyjściu. Jak zwykle nieudokumentowane polecenia, zniknął w oficjalnym repozytorium i stał się „ poleceniem zewnętrznym ” utrzymywanym w innym repozytorium dodatkowym (w tym przypadku jest to tak proste).

Możesz zainstalować go w konfiguracji Homebrew, uruchamiając:

> 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

Alternatywnie możesz pominąć servicesi po prostu utworzyć dla niego plik plist. Na przykład utwórz za ~/Library/LaunchAgents/org.mongodb.mongod.plistpomocą:

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

Po prostu zmień {your_username}swoją rzeczywistą nazwę użytkownika, a następnie uruchom:

launchctl load ~/Library/LaunchAgents/org.mongodb.mongod.plist 

aby zarejestrować listę z uruchomionym. Możesz teraz uruchomić i zatrzymać MongoDB za pomocą:

launchctl start org.mongodb.mongod
launchctl stop org.mongodb.mongod

Uwaga: powyższe rozwiązanie plist zostało zaczerpnięte z tej doskonałej odpowiedzi przepełnienia stosu .

Ian C.
źródło
2

Jest teraz zewnętrzny:

brew tap homebrew/services

brew services install, brew services installteraz pracuj.

kbrock
źródło