Я хотел бы запустить 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.