Подтвердить что ты не робот

Как заставить supervisord остановить процесс в статусе BACKOFF

Когда вы запускаете процесс с помощью supervisord, он находится в состоянии "STARTING", а затем, если он получает проблемы, он попадает в состояние "BACKOFF", если для автозагрузки установлено значение true.

Я не хочу ждать попыток "startretries", я хочу остановить процесс перезапуска вручную с помощью supervisorctl. Единственный способ, которым я нашел это, - остановить всю службу супервизора и запустить ее снова (каждый процесс переходит в состояние "STOPPED", если нет автозапуска).

Есть ли лучший способ сделать это (заставьте "STOPPED" статус из состояния "BACKOFF" ), поскольку у меня есть другие процессы, управляемые в супервизоре, которые я не хочу останавливать?

Если я попытаюсь остановить его с помощью

supervisorctl stop process

Я получаю

FAILED: attempted to kill process with sig SIGTERM but it wasn't running

Если я попытаюсь запустить его с помощью

supervisorctl start process

Я получаю

process: ERROR (already started)

Конечно, я мог бы отключить автозапуск, но это может быть полезно, обходным путем является ограничение начала работы, есть ли лучшее решение?

4b9b3361

Ответ 1

Эй, возможно, это поможет вам:

Когда процесс autorestarting находится в состоянии BACKOFF, он будет автоматически перезапускается супервизором. Он переключится между STARTING и BACKOFF, пока не станет очевидно, что он не может быть запущен, потому что превышено количество startretriesмаксимум, после чего он перейдет в состояние FATAL. При каждом повторном запуске начнется более продолжительное время.

поэтому вам не нужно останавливать процесс BACKOFF вручную. если вы не хотите ждать слишком долгое время, лучше установить небольшое число для начала.

см. больше информации здесь: http://supervisord.org/subprocess.html

GOOD LCUKY

Ответ 2

Используйте следующую команду, чтобы заставить супервизора остановить процесс в состоянии BACKOFF.

supervisorctl stop <gname>:*