Estou usando o supervisor para monitorar um processo que é um pequeno script bash para executar um comando. Aqui está o meu arquivo de configuração do processo do supervisor
[program:ngrok_worker]
command=/home/pi/scripts/remoteacess.sh
autostart=true
autorestart=true
stdout_logfile=/tmp/ngrok-worker.log
stderr_logfile=/var/log/supervisor/test.err.log
redirect_stderr=true
quando vejo o log do supervisor em / var / log / supervisor eu encontro
2017-05-08 19:56:23,089 INFO gave up: ngrok_worker entered FATAL state, too many start retries too quickly
2017-05-08 19:59:14,748 INFO spawned: 'ngrok_worker' with pid 16807
2017-05-08 19:59:14,879 INFO exited: ngrok_worker (exit status 0; not expected)
2017-05-08 19:59:15,901 INFO spawned: 'ngrok_worker' with pid 16817
2017-05-08 19:59:16,212 INFO exited: ngrok_worker (exit status 0; not expected)
2017-05-08 19:59:18,261 INFO spawned: 'ngrok_worker' with pid 16830
2017-05-08 19:59:18,731 INFO exited: ngrok_worker (exit status 0; not expected)
2017-05-08 19:59:21,789 INFO spawned: 'ngrok_worker' with pid 16882
2017-05-08 19:59:22,111 INFO exited: ngrok_worker (exit status 0; not expected)
2017-05-08 19:59:23,115 INFO gave up: ngrok_worker entered FATAL state, too many start retries too quickly
Não encontrei nenhum erro de digitação no arquivo de configuração do trabalhador e não consegui descobrir por que o supervisor não pode reiniciar o processo se eu o eliminar manualmente usando sudo kill <PID>
Editar -1: de acordo com algumas sugestões aqui neste link
startsecs =0
mas quando eu verificar o log, é como, este comando está reiniciando o script de novo e de novo e é por isso que ngrok
está criando um novo túnel a cada 1 segundo, o que não é desejável.
Aqui está o meu bashscriot para executar o ngrok a partir do bashscript
#!/bin/bash
sudo ngrok tcp 22 --config=/home/pi/.ngrok2/ngrok.yml --log=stdout > /home/pi/ngrok.log &