Как правильно запустить службу mongod в linux / OS X?

107

Я установил mongodb и смог запустить его, работать с ним, сделать простой материал для чтения/записи DB. Теперь я пытаюсь настроить свой Mac для запуска mongod как службы.

Я получаю команду "Команда не найдена" в ответ на:

 init mongod start

В ответ на:

~: service mongod start
service: This command still works, but it is deprecated. Please use launchctl(8) instead.
service: failed to start the 'mongod' service

И если я попробую:

~: launchctl start mongod
launchctl start error: No such process

Так что, очевидно, я немного обманываюсь. Следующий шаг, кажется, набирает случайные символы, пока что-то не работает. Команда, которая работает: mongod --quiet & Я не уверен, возможно, так вы должны это делать? Может быть, мне нужно просто снять "тихий режим" и добавить > /logs/mongo.log в конец командной строки?

Я создаю среду разработки на Mac с намерением сделать то же самое на сервере linux. Я просто не уверен в командах Bash. Все остальные поиски, которые я выполняю, пытаясь подтянуть ответ, дают мне советы для оконных машин.

Возможно, кто-то знает версию linux для команд?

Большое спасибо

  • 0
    Я сделал на Windows с этой ссылкой ( stackoverflow.com/questions/2438055/… ), не уверен, если то же самое на Mac OS.
  • 0
    Спасибо Скотт, нет, я также видел и пробовал вещи из error command line: unknown option install потока error command line: unknown option install
Теги:
initialization
service

6 ответов

109
Лучший ответ

С недавними сборками сообществ сообщества mongodb это просто.

Когда вы устанавливаете через brew, он сообщает вам, что именно делать. Нет необходимости создавать новый файл управления запуском.

$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.6.yosemite.bottle.tar.gz ### 100.0%
==> Pouring mongodb-3.0.6.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
  ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
  /usr/local/Cellar/mongodb/3.0.6: 17 files, 159M
  • 0
    Нужно ли mongod отображать информацию через оконный сервер; это должен быть агент запуска или этого достаточно, чтобы сделать его демоном запуска ?
  • 22
    Руководители до пользователей OSX: я установил mongo с помощью homebrew, и он включал /usr/local/Cellar/mongodb/2.4.5-x86_64/homebrew.mxcl.mongodb.plist (и был правильно настроен для моей установки). Просто скопируйте homebrew.mxcl.mongodb.plist в LaunchAgents и следуйте остальным инструкциям (заменив homebrew.mxcl.mongodb на org.mongodb.mongod ), и это прекрасно работает.
Показать ещё 1 комментарий
134

Когда вы устанавливаете/обновляете mongodb, brew расскажет вам, что делать:

Чтобы запустить start mongodb при входе в систему:

    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Затем загрузить mongodb сейчас:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Или, если вам не нужен/нужен запуск, вы можете просто запустить:

    mongod

Он отлично работает.

  • 0
    Я не видел эту инструкцию! Это прекрасно работает для меня на Mac OSX 10.8.4, я думаю, я установил его с Brew. Комментарий Джейкоба в принятом ответе указывал на неизвестный файл, когда я пытался это сделать.
  • 5
    Я предпочитаю это решение над принятым ответом. Копирование plist в ответе выше усложняет процесс обновления mongo; Вы должны будете помнить, чтобы обновить пути по мере необходимости. Однако использование символической ссылки, рекомендованной homebrew, позаботится об этом за вас. Я использовал этот подход, и псевдонимы из ответа выше (замена org.mongodb.mongod на homebrew.mxcl.mongodb), и все работает отлично
Показать ещё 3 комментария
59

Homebrew services tap объединяет формулы с менеджером launchctl. Добавление легко:

brew tap homebrew/services

Затем вы можете запустить MongoDB с помощью этой команды:

brew services start mongodb

Вы также можете использовать stop или restart:

brew services stop mongodb
brew services restart mongodb
  • 4
    Понравился ответ, но обнаружил, что brew уберет сервисы в будущем. brew services start mongodb Предупреждение: brew services не поддерживается и будет удалена в ближайшее время.
  • 1
    Это печальные новости. Пока это просто устарело, что означает, что когда-нибудь оно будет удалено, но оно все еще работает. Надеюсь, кто-то добровольно поддержит это как сигнал. Я обновлю свой ответ, когда он будет удален или когда станет доступен кран.
Показать ещё 5 комментариев
13

Если вам кажется, что у вас простой gui, чтобы исправить это (как и я), я могу рекомендовать pref-панель mongodb. Описание: http://blog.mongodb.org/post/28925264384/macosx-preferences-pane-for-mongodb

В github: https://github.com/remysaissy/mongodb-macosx-prefspane

2

Я немного огляделся по сторонам Mac. Вы можете использовать установщик здесь, поскольку он выглядит так, как будто все настройки для вас автоматически запускаются в Mac OS. Единственный недостаток - похоже, что он использует довольно старую версию mongo.

Эта ссылка здесь также объясняет настройку, позволяющую автоматически запускать mongo в качестве фоновой службы на Mac.

  • 1
    Ссылка больше не доступна.
  • 1
    не уверен, что это была точно такая же, но фиксированная ссылка для перехода к статье, объясняющей ту же концепцию
0

mongod --dbpath [path_to_data_directory]

  • 2
    ОП хочет запустить его как сервис, а не в интерактивном режиме. Хороший ответ должен адресовать это непосредственно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню