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.