Cần trợ giúp bằng cách sử dụng lệnh 'Dịch vụ' của Homebrew


9

Tôi đã cài đặt MongoDB bằng cách sử dụng homebrew gần đây. Một vài bài viết trên web khuyên bạn nên bắt đầu mongo bằng lệnh sau,

brew services start mongo

Nhưng khi tôi sử dụng lệnh này, tôi nhận được thông báo sau,

Error: Unknown command: services

Tôi đã cố gắng tìm kiếm về vấn đề này trực tuyến. Nhưng không có may mắn cho đến nay. Vấn đề ở đây là gì? Tôi đã cài đặt homebrew vì nó được chỉ định trên trang web của họ. Tại sao tính năng này không hoạt động đối với tôi?

Và trang man không có thông tin liên quan đến lệnh 'services'.

Câu trả lời:


8

services một lệnh "ẩn" trong Homebrew. Có một loạt chúng không có trongbrew helpđầu ra. Nó, vì các lệnh không có giấy tờ sẽ không được thực hiện, đã biến mất trong kho lưu trữ chính thức và đã trở thành một " lệnh bên ngoài " được duy trì trong một kho lưu trữ bổ trợ khác (trong trường hợp này là một ý chính vì nó rất đơn giản).

Bạn có thể cài đặt nó trong thiết lập Homebrew của mình bằng cách chạy:

> 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

Ngoài ra, bạn có thể bỏ qua servicesvà chỉ cần tạo một tập tin plist cho nó. Ví dụ: tạo ~/Library/LaunchAgents/org.mongodb.mongod.plistbằng:

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

Chỉ cần thay đổi {your_username}tên người dùng thực tế của bạn sau đó chạy:

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

để đăng ký plist với launchd. Bây giờ bạn có thể bắt đầu và dừng MongoDB với:

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

Lưu ý, giải pháp plist ở trên được lấy từ câu trả lời Stack Overflow tuyệt vời này .


2

Nó là bên ngoài bây giờ:

brew tap homebrew/services

brew services install, brew services installbây giờ làm việc.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.