Butuh bantuan menggunakan perintah Homebrew 'Services'

9

Saya menginstal MongoDB menggunakan homebrew baru-baru ini. Beberapa artikel di web menyarankan untuk memulai mongo menggunakan perintah berikut,

brew services start mongo

Tetapi ketika saya menggunakan perintah ini, saya mendapatkan pesan berikut,

Error: Unknown command: services

Saya mencoba mencari tentang masalah ini secara online. Tapi tidak beruntung sejauh ini. Apa yang bisa menjadi masalah di sini? Saya memasang homebrew seperti yang ditentukan di situs web mereka. Mengapa fitur ini tidak berfungsi untuk saya?

Dan halaman manual tidak memiliki informasi mengenai perintah 'layanan'.

Ganz7
sumber

Jawaban:

8

services adalah perintah "tersembunyi" dalam Homebrew. Ada banyak dari mereka yang tidak hadir dalambrew helpoutput. Itu, karena perintah tidak berdokumen tidak akan melakukannya, pergi dalam repositori resmi dan telah menjadi " perintah eksternal " yang dipertahankan dalam repositori add-on lain (dalam hal ini intinya karena sangat sederhana).

Anda dapat menginstalnya di pengaturan Homebrew Anda dengan menjalankan:

> 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

Atau Anda dapat melewati servicesdan hanya membuat file plist untuk itu. Misalnya, buat ~/Library/LaunchAgents/org.mongodb.mongod.plistdengan:

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

Cukup ubah {your_username}nama pengguna Anda yang sebenarnya lalu jalankan:

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

untuk mendaftarkan plist dengan launchd. Anda sekarang dapat memulai dan menghentikan MongoDB dengan:

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

Catatan, solusi plist di atas diambil dari jawaban Stack Overflow yang luar biasa ini .

Ian C.
sumber
2

Sekarang eksternal:

brew tap homebrew/services

brew services install, brew services installsekarang bekerja.

kbrock
sumber