Супервизор продолжает перезапускать процесс, несмотря на то, что автоперезапуск установлен в значение false.

Вопрос или проблема

Я работаю над тем, чтобы supervisord отправлял запрос curl при запуске. Однако, несмотря на все мои усилия, я установил авто перезапуск на false, но скрипт продолжает выполняться.

[program:slack-client]
priority=99
autorestart=false
command=bash -c 'КОМАНДА BASH'

Ошибка, которая продолжает повторяться, это

INFO exited: slack-client (код выхода 0; не ожидается)

exitstatus=0 должен быть значением по умолчанию согласно текущей версии в 2023 году. Возможно, вам следует установить startsecs=0, так что даже если код возврата приемлемый, это не будет расцениваться как НЕУСПЕХ.

Изменив мой файл supervisor.conf, и добавив

exitstatus=0

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что Supervisord продолжает перезапускать процесс, несмотря на использование параметра autorestart=false. Это происходит потому, что процесс завершился с кодом выхода 0, что, по умолчанию, трактуется как нормальное завершение.

Чтобы решить эту проблему, вам нужно внести изменения в конфигурационный файл программы, чтобы Supervisord не считал такой выход не ожидаемым. Для этого добавьте параметр exitstatus=0, который сообщит Supervisord, что код завершения 0 не должен расцениваться как ошибка. Также рекомендуется установить startsecs=0, чтобы минимизировать время, в течение которого Supervisord ожидает завершения задачи перед проверкой кода выхода.

Вот как может выглядеть ваша конфигурация:

[program:slack-client]
priority=99
autorestart=false
command=bash -c 'SOME BASH COMMAND'
exitstatus=0
startsecs=0

Параметры:

  • autorestart=false: Отключает автоматический перезапуск при завершении.
  • exitstatus=0: Указывает, что код выхода 0 не следует рассматривать как ошибку.
  • startsecs=0: Устанавливает время ожидания перед тем, как Supervisord начнет проверять конкретный код выхода процесса. Это полезно, если процесс завершается очень быстро и Supervisord не успевает зафиксировать его состояние.

После внесения этих изменений перезапустите Supervisord, чтобы изменения вступили в силу. Это должно устранить проблему с постоянным перезапуском вашего процесса. Если вы всё ещё столкнётесь с трудностями, убедитесь, что другие настройки конфигурации или другие скрипты не влияют на поведение Supervisord.

Оцените материал
Добавить комментарий

Капча загружается...