Я использую supervisord
внутри контейнера Docker для управления моими запущенными процессами и хотел бы также использовать его для запуска определенных команд - запустите их один раз и ожидайте, что они выйдут с 0
.
Вот один пример:
[program:central-seed-posts]
command = /usr/bin/php /var/www/app/artisan post
autostart = false
autorestart = false
startsecs = 3
startretries = 0
exitcodes = 0
stderr_logfile=/tmp/central/posts-stderr-supervisor.log
stdout_logfile=/tmp/central/posts-stdout-supervisor.log
И я использую нсентер docker-enter
с участием supervisorctl start central-seed-posts
чтобы вызвать его, но я также хотел бы обработать успешный выход вместо того, чтобы руководитель сообщал мне ERROR (abnormal termination)
Это как-то связано с супервизорскими мероприятиями?
Проблема, с которой вы столкнулись, похоже, связана со следующим вариантом, который вы используете:
startsecs = 3
Если вы прочитали руководство супервизора, вы увидите, что startsecs устанавливает, как долго процесс должен оставаться в живых после запуска, чтобы Supervisord считал запуск успешным. Ваш процесс, вероятно, завершается раньше, чем через 3 секунды, что предполагает, что запуск не был успешным.
Попробуйте снизить это значение до 0, если у вас нет реальной причины держать его 3 секунды.