Настройка mongodb через upstart - как передать параметры?

Я установил MongoDB на виртуальной машине Ubuntu Server внутри VMware, используя следующие инструкции: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/. Все отлично работает, и я могу получить доступ к MongoDB через обычный порт 27017

./mongo 172.16.150.131:27017

Теперь я хочу создать фиктивный набор реплик и еще один экземпляр БД для тестирования моего приложения. Я привык выполнять следующие команды в четырех отдельных терминалах на моем локальном компьютере:

./mongod --port 27027 --dbpath ~/mongodb/solo
./mongod --port 27028 --dbpath ~/mongodb/rs0-0 --replSet rs0
./mongod --port 27029 --dbpath ~/mongodb/rs0-1 --replSet rs0
./mongod --port 27030 --dbpath ~/mongodb/rs0-2 --replSet rs0

Как я могу сделать это в ВМ? Я подключаю SSH к своей виртуальной машине, и после запуска команд и закрытия моих терминалов (в OS X) они все еще должны работать.

Я старался:

service mongodb --port 27027 --dbpath ~/mongodb/solo
service mongodb ~/mongodb/solo/mongodb.conf

Но оба получают следующую ошибку (в разных контекстах):

Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongodb --config=~/mongodb/solo/mongodb.conf

The script you are attempting to invoke has been converted to an Upstart
job, but --config=~/mongodb/solo/mongodb.conf is not supported for Upstart jobs.

Как мне заставить это работать? Впервые работаю с Ubuntu в качестве сервера. Благодарю.

Контекст - цель состоит в том, чтобы создать свою БД в ВМ, чтобы создать некоторую задержку при тестировании моего приложения, но в основном так, чтобы я мог просто приостановить ВМ вместо копирования и вставки скриптов в разные терминалы для настройки MongoDB всякий раз, когда я перезагружаю свой ноутбук.

1 ответ

Решение

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

/etc/init/mongodb.conf

Это не следует путать с /etc/mongodb.conf который является местоположением по умолчанию файла конфигурации для службы MongoDB.

Если вы хотите иметь возможность запускать / останавливать дополнительные экземпляры автоматически или вы хотите, чтобы выскочивший управлял ими, вам просто нужно создать дубликаты заданий, которые указывают на разные конфигурационные файлы (или имеют разные параметры, указанные в самом файле задания). Начните с просмотра файла в init, о котором я упоминал выше, а затем посмотрите здесь для получения дополнительной информации о развертывании ваших собственных выскочки:

http://upstart.ubuntu.com/cookbook/

Другой вариант, конечно, просто вызвать дополнительные mongod экземпляры напрямую. Например:

/usr/bin/mongod --fork --config=~/mongodb/solo/mongodb.conf

--fork опция (если она не указана в файле конфигурации) необходима для перехода в фоновый режим и не будет уничтожена при выходе из системы и завершении работы оболочки.

Другие вопросы по тегам