Homebrew 'Services'명령 사용에 도움이 필요합니다


9

최근에 homebrew를 사용하여 MongoDB를 설치했습니다. 웹의 일부 기사는 다음 명령을 사용하여 mongo를 시작하도록 권장합니다.

brew services start mongo

하지만이 명령을 사용하면 다음과 같은 메시지가 나타납니다.

Error: Unknown command: services

이 문제에 대해 온라인으로 검색하려고했습니다. 그러나 지금까지는 운이 없습니다. 여기서 무엇이 문제가 될 수 있습니까? 웹 사이트에 지정된대로 홈 브루를 설치했습니다. 왜이 기능이 작동하지 않습니까?

그리고 매뉴얼 페이지에는 'services'명령에 관한 정보가 없습니다.

답변:


8

services 이었다 브루에서 "숨겨진"명령. brew help결과물에없는 많은 것들이있었습니다. 문서화되지 않은 명령은 수행하지 않을것이기 때문에공식 저장소에서 사라지고 다른 애드온 저장소에서 유지되는 " 외부 명령 "이되었습니다 (이 경우에는 간단합니다).

다음을 실행하여 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

또는 servicesplist 파일을 건너 뛰고 그냥 만들 수 있습니다 . 예를 들어 다음을 사용 ~/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를 launchd로 등록합니다. 이제 다음을 사용하여 MongoDB를 시작하고 중지 할 수 있습니다.

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

위의 plist 솔루션은 이 탁월한 스택 오버 플로우 응답 에서 가져 왔습니다 .


2

지금은 외부입니다.

brew tap homebrew/services

brew services install, brew services install지금은 작동합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.