Я настроил Монго работать на GCE инстанции.Запуск MongoDB при запуске в экземпляре Google Compute Engine
Сначала я работал в /
и запуск Монго с sudo mongod
, но разумно печатает некоторое предупреждение о том, что:
ВНИМАНИЕ: Вы работаете в этот процесс как пользователь корня, , не рекомендуется.
Так что я переехал все, чтобы /home/my_google_account
, и я могу просто получить через SSH и запустить mongod
.
Теперь я хотел бы иметь некоторые действия, в том числе mongod
, запускать при запуске. В моем понимании, правильный способ сделать это состоит в использовании Google startup scripts: с консоли вы можете предоставить сценарий, как следующее в качестве метаданных ключ-значение пары:
#! /bin/bash
apt-get update
mongod -f /home/my_google_account/mongod.conf
Он работает, но, как говорит Google это выполняется как корень:
экземпляр всегда выполняют сценарии запуска с правами администратора, и только выполняет эти сценарии после того, как он создает какие-либо новые пользователь, чьи SSH ключей включены в метаданных экземпляра.
Таким образом, процесс mongod запускается с привилегиями суперпользователя, и я все еще получаю предупреждение, что я должен был первоначально:
ВНИМАНИЕ: Вы работаете в этот процесс как пользователь корня, , не рекомендуется.
Что я должен делать?
Есть ли способ для запуска сценария не бежать как корень? Или я должен просто работать в /
с sudo
с и игнорировать предупреждение на всех? Все, кажется, предполагает, что вы должны работать в домашней папке пользователя, получить необходимые разрешения и запускать mongod с привилегиями. Но тогда стартовый скрипт будет работать как root!
Спасибо за ваш ответ. Надеюсь, вы можете разобраться в этом. Я заметил, что на самом деле мой Монго сборки (из percona.com) уже создан 'пользователь mongod' в' mongod' группы. Для чего это? Я должен использовать этот (например, 'sudo mongod -c 'mongod -f mongod.conf')? – natario
скорее всего это для работает монго. Если вы используете нестандартную сборку пакетов, я бы предположил, что ваша сборка может также «chown» mongo data dir пользователю «mongod» для вас. Проверьте и посмотрите, какой пользователь/группа владеет файлом/data/db (или запустите mongo как root, как вы уже это сделали, и ps -eaf | grep mongo, чтобы узнать, где находится каталог данных mongo с конфигурацией --dbpath или посмотреть/home /my_google_account/mongod.conf для местоположения).Вы можете использовать mongod или любого пользователя, если владеет данными dir ... И, пожалуйста, отметьте ответ как правильный ;-) – steveinatorx