Я всегда тестировал наборы реплик, запуская несколько процессов mongod
на одном сервере (поскольку использование нескольких серверов обходится дороже, и на данный момент я просто тестирую).
Однако, поскольку я обновил mongo до версии v2.0.5, я получаю следующее, когда пытаюсь снова запустить mongod (на другом порту, с другой папкой базы данных и т. д.):
mongod already running
Почему это так? Есть ли флаг, чтобы пропустить эту проверку?
Обновление: по какой-то причине это происходит только тогда, когда я запускаю mongod
вот так:
sudo start-stop-daemon --start -c mainuser --exec /usr/local/bin/mongod -- --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001
Этого не происходит, когда я запускаю его так:
sudo /usr/local/bin/mongod --journal --nohttpinterface --dbpath /home/mainuser/data/db-secondary --logpath /home/mainuser/data/logs/mongodb-secondary.log --logappend --replSet appname --port 30001
К сожалению, мне приходится использовать start-stop-daemon
для использования в моем сценарии выскочки на Ubuntu 10.04 LTS. Почему это может вызвать эту проблему?
После прочтения справочной страницы для start-stop-daemon
становится ясно, что он намеренно не пытается запустить процесс снова, потому что распознает его как ту же «службу». Однако я использую только start-stop-daemon
, чтобы работать с Upstart от имени другого пользователя. Можно ли обойти проверку или запустить выскочку от имени пользователя, не являющегося sudo, по-другому?