Não é possível criar o arquivo de bloqueio ao iniciar o mongod via upstart

4

Estou tentando configurar meu script upstart mongodb para funcionar como um árbitro, mas estou com problemas de permissão ao tentar criar o arquivo de bloqueio no diretório de dados:

Tue Apr  1 17:11:01 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/tmp/arb", journal: "true", logappe
nd: "true", logpath: "/var/log/mongodb/mongodb-arbiter.log", port: 27017, replSet: "rs1" }
Tue Apr  1 17:11:01 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /tmp/arb/mongod.l
ock errno:13 Permission denied Is a mongod instance already running?, terminating

Definitivamente não há arquivo de bloqueio presente e definitivamente não há outro processo mongod em execução ( ps -A | grep mongod não retornará nada).

Além disso, quando tento iniciar o processo mongod

mongod --fork --port 27017 --dbpath /data/arb --replSet rs1 --logpath /var/log/mongodb.log

isso também causará o mesmo erro quando não for sudo ed.

Como posso configurar as permissões corretas para o script upstart para gravar dados em /data/arb ?

    
por m90 01.04.2014 / 17:19

1 resposta

5

Você precisa ter as permissões nessa pasta (e tudo nela) para que o usuário mongodb possa gravar nela. O motivo pelo qual ele está trabalhando com sudo é porque o usuário root tem essas permissões, independentemente do proprietário / grupo. Na verdade, essa pode ser a causa raiz aqui - quando você executa o processo mongod com o sudo, ele cria os arquivos com root:root de propriedade que o usuário normal do mongodb não pode acessar.

O user:group para o MongoDB no Ubuntu geralmente é mongodb:mongodb , portanto faça o seguinte:

cd /tmp/arb
sudo chown -R mongodb:mongodb .

Como você está executando um árbitro aqui, eu também recomendaria as seguintes opções no seu arquivo de configuração (nota: não para uso em um nó normal de rolamento de dados - somente árbitro):

Essas configurações minimizarão a pegada do árbitro no host.

    
por Adam C 02.04.2014 / 02:30