Назад | Перейти на главную страницу

Как я могу запустить mongodb в фоновом режиме в unix (mac os x)?

Я хотел бы запустить mongod в фоновом режиме, как всегда присутствующую вещь. Как лучше всего это сделать? Это похоже на то, как я могу запускать MySQL при запуске, и он всегда работает в фоновом режиме. Возможно, это просто скрипты на bash, но было бы неплохо услышать, есть ли способ получше. Если это просто bash - как бы это выглядело? Спасибо.

У демона MongoDB (mongod) есть опция командной строки для запуска сервера в фоновом режиме ...

--fork

Этот параметр командной строки требует, чтобы вы также указали файл для записи сообщений (поскольку он не может использовать текущую консоль). Пример этой команды выглядит так:

mongod --fork --logpath /var/log/mongod.log

Вы можете поместить это в файл сценария bash /etc/init.d/mongod. А затем, чтобы служба запускалась при запуске, создайте стандартные символические ссылки (S ## & K ##) внутри /etc/rc#.d/. Вот руководство это объясняет этот процесс более подробно. Прокрутите вниз до раздела «Активация сценария инициализации». Это также имеет дополнительное преимущество, заключающееся в возможности выполнять такие команды, как ...

service mongod status
service mongod start
service mongod stop

Поскольку у вас Mac, вам следует использовать Домашнее пиво для установки MongoDB (вам нужно будет установить Homebrew, если вы еще этого не сделали):

brew install mongodb

Допустим, установлена ​​установленная версия. 2.0.6-x86_64. Затем добавьте файл plist LaunchAgent, который он сгенерирует для вас:

mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/mongodb/2.0.6-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Это запустит mongod в фоновом режиме сейчас и каждый раз при перезагрузке компьютера.

попробуйте выполнить следующую команду:

mongod --fork --syslog

Классически, чтобы работать в фоновом режиме, просто начните с
nohup some_command - запустить &
Итак, это nohup &, поместите команду, которую вы хотите запустить в фоновом режиме, между nohup и &. Он будет работать как вы, он продолжит работу после закрытия терминала или выхода из системы. Вы можете запустить его как другой пользователь через sudo. Чтобы он запускался при запуске, добавьте его в замену сценариев инициализации (не знаю, как это называется). Он запишет любой вывод в файл nohup.out, с которого вы его запустили.

Лучший способ запустить программу при запуске в OS X - это создать LaunchDaemon (см. Документы Apple, и взгляните на некоторые из поставляемых Apple демонов в / System / Library / LaunchDaemons) и установите их в / Library / LaunchDaemons. Лингон может помочь вам создать файл .plist.