Monit tendo problemas para determinar se o daemon Bitcoin está rodando

3

Estou configurando o Monit para monitorar o daemon do Bitcoin para garantir que ele funcione 24 horas por dia, 7 dias por semana e reinicie-o se algo der errado. O binário do Bitcoin está em /usr/local/bin/bitcoind e o diretório de dados está em /home/bitcoin/.bitcoin .

Eu disse à Monit para monitorar o daemon através do arquivo pid /var/run/bitcoind.pid a cada 2 minutos e iniciar / parar o daemon como o usuário bitcoin . No entanto, é aqui que passei incontáveis horas tentando descobrir o que está errado.

Como eu não tenho um script de inicialização / inicialização para bitcoind , ele passou diretamente os comandos para o próprio binário, que pode ser visto com o seguinte arquivo /etc/monit/monitrc :

set daemon 120
set logfile /var/log/monit.log 

check process bitcoind with pidfile "/var/run/bitcoind.pid"
    start program "/usr/local/bin/bitcoind -pid=/var/run/bitcoind.pid -datadir=/home/bitcoin/.bitcoin -daemon"
        as uid bitcoin and gid bitcoin
    stop program "/usr/local/bin/bitcoind stop"
        as uid bitcoin and gid bitcoin
    if failed port 8332 for 2 cycles then restart

Quando as inicializações do sistema, eu faço o login como usuário bitcoin e inicio ps -u bitcoin . Com certeza, o bitcoind aparece como sendo executado sob meu usuário. No entanto, quando eu obtenho o Monit para exibir o status através de monit status , a resposta é mostrada primeiro como execution failed e, em seguida, not monitored .

Eu verifiquei /var/run/ enquanto bitcoind está em execução e descobri que não existe esse arquivo chamado bitcoind.pid , o que me faz pensar que o bitcoind não tem permissões suficientes para criar um pid de arquivo em /var/run durante a execução como usuário bitcoin .

Para uma solução alternativa, deixei o arquivo pid criado no local padrão ( /home/bitcoin/.bitcoin/bitcoind.pid ), mas a raiz não pode acessá-lo, o que também leva ao mesmo resultado.

O arquivo /var/log/monit.log não fornece informações úteis, portanto, use os 'wrappers' que eu tentei.

Isso tudo pode ser resolvido executando bitcoind como root , mas estou preocupado com problemas de segurança.

    
por John Doe 19.07.2011 / 02:21

1 resposta

2

Você está correto ao supor que o usuário bitcoin não terá permissão para gravar em /var/run , mas root será capaz de ler /home/bitcoin/.bitcoin/bitcoind.pid . Gostaria de deixar o PID no último local e, em seguida, trabalhar um pouco mais para descobrir por que monit não está lendo esse segundo local. Minha aposta seria um erro de digitação no caminho na configuração do monit.

    
por 19.07.2011 / 02:26

Tags