Нужна помощь с помощью команды Homebrew Services

Недавно я установил MongoDB с использованием homebrew. Несколько статей в Интернете советуют начать mongo, используя следующую команду:

brew services start mongo

Но когда я использую эту команду, я получаю следующее сообщение:

Error: Unknown command: services

Я попытался найти эту проблему в Интернете. Но пока не повезло. Что может быть проблемой здесь? Я установил homebrew, как было указано на их веб-сайте. Почему эта функция не работает для меня?

И страница руководства не содержит информации о команде «services».

9 голосов | спросил Ganz7 12 +04002014-10-12T22:14:51+04:00312014bEurope/MoscowSun, 12 Oct 2014 22:14:51 +0400 2014, 22:14:51

1 ответ


8

services была «скрытая» команда в Homebrew. Существовала их группа, которая не присутствовала в выводе brew help. Он, как и не документированные команды, ушел в официальном репозитории и стал « external command " поддерживается в другом дополнительном репозитории (в данном случае сущность, поскольку это так просто).

Вы можете установить его в настройке Homebrew, выполнив:

> 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

В качестве альтернативы вы можете пропустить services и просто создать для него файл plist. Например, создайте ~/Library/LaunchAgents/org.mongodb.mongod.plist с помощью

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

Просто измените {your_username} на свое фактическое имя пользователя и запустите:

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

, чтобы зарегистрировать plist с помощью запуска. Теперь вы можете запустить и остановить MongoDB с помощью:

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

Обратите внимание, что вышеупомянутое решение plist было взято из этого превосходного ответа на переполнение стека .

ответил Ian C. 12 +04002014-10-12T22:50:54+04:00312014bEurope/MoscowSun, 12 Oct 2014 22:50:54 +0400 2014, 22:50:54

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132