Вопрос или проблема
Я работаю над тем, чтобы 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.