Homebrewの「Services」コマンドの使用に関するサポートが必要


9

最近、自作でMongoDBをインストールしました。Web上のいくつかの記事では、次のコマンドを使用してmongoを起動することをお勧めしています。

brew services start mongo

しかし、このコマンドを使用すると、次のメッセージが表示されます。

Error: Unknown command: services

この問題についてオンラインで検索してみました。しかし、今のところ運はありません。ここで何が問題になるのでしょうか?彼らのウェブサイトで指定されているように、私は自作をインストールしました。この機能が機能しないのはなぜですか?

また、manページには「services」コマンドに関する情報はありません。

回答:


8

services Homebrewの「隠された」コマンドでした。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

または、スキップ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 

launchdでplistを登録します。これで、MongoDBを開始および停止できます。

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

上記のplistソリューションは、この優れたスタックオーバーフローの回答から取られました


2

現在は外部です:

brew tap homebrew/services

brew services installbrew services install今働きます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.