Назад | Перейти на главную страницу

Супервизор выключения при выходе из подпроцесса

Я пытаюсь запустить supervisord в экземпляре Docker.

[supervisord]
nodaemon=true

[program:p1]
command=p1 $P1_ENV
autorestart=true
...

[program:p2]
command=p2 $P2_ENV
autorestart=unexpected
...

Мы хотели бы иметь возможность запускать наши интеграционные тесты p2 в этом производственном экземпляре Docker (в настоящее время настроенном так P2_ENV=--tests запустит тесты). Эти тесты полагаются на запущенный p1. Мы также хотели бы, чтобы экземпляр Docker завершал работу после завершения тестов, для чего требуется супервизор.

Можно ли заставить supervisord корректно завершить все процессы и выйти, когда процесс 2 завершится корректно?

Если нет, существует ли еще одна программа в стиле супервизора, которая допускает эту функцию?

Спасибо!