Я использую супервизор для мониторинга процесса, который представляет собой небольшой bash-скрипт для запуска команды. Вот мой файл конфигурации процесса супервизора
[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
когда я вижу журнал супервизора в /var /log /supervisor, я нахожу
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
Я не нашел ни одной ошибки опечатки в рабочем файле конфигурации, и я не могу выяснить, почему супервизор не может перезапустить процесс, если я уничтожаю его вручную с помощью sudo kill <PID>
Редактировать -1: согласно некоторым предложениям здесь по этой ссылке startsecs =0
но когда я проверяю журнал, похоже, эта команда перезапускает скрипт снова и снова, и поэтому ngrok
создает новый туннель каждую 1 секунду, что нежелательно ,
Вот мой bashscriot для запуска ngrok из bashscript
#!/bin/bash
sudo ngrok tcp 22 --config=/home/pi/.ngrok2/ngrok.yml --log=stdout > /home/pi/ngrok.log &