як перезапустити лише певні процеси за допомогою supervisorctl?


107

Я запускаю кілька процесів за допомогою supervisord, найменування process1, process2, ..., process8. Якщо я хочу перезапустити процес {1-4}, як це зробити з supervisorctl?

Відповіді:


177

Супервізор підтримує групи процесів . Ви можете групувати процеси в названі групи та керувати ними колективно.

[unix_http_server]
file=%(here)s/supervisor.sock

[supervisord]
logfile=supervisord.log
pidfile=supervisord.pid

[program:cat1]
command=cat

[program:cat2]
command=cat

[program:cat3]
command=cat

[group:foo]
programs=cat1,cat3

[supervisorctl]
serverurl=unix://%(here)s/supervisor.sock

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

Команду supervisorctl можна викликати іменем групи:

supervisorctl restart foo:

а також з кількома назвами процесів:

supervisorctl restart foo:cat1 cat2

47
Дивно, наскільки нетривіально було з’ясувати, що двокрапка повинна бути додана при видачі команд групі процесів. Дякую.
мафроз

4
Домовились. Я думаю, supervisorctl restart foo:*що стає зрозумілішим те, що відбувається.
Том

Отже, щоб безпосередньо відповісти на питання ОП, ви не можете безпосередньо перезапустити певний процес. Можна лише перезапустити групи, для чого потрібен тег групи?
Серін

@Cerin З мого власного тестування я дійшов такого саме висновку. Якщо говорити анекдотично, я схильний бачити групу в кінці файлів .conf, що містять усі процеси. Як повторне спостереження, це не мало сенсу. Тепер це має повний сенс :)
AlanSE

Ви зробили мій день :)
1717

3

Оскільки supervisorctlв командному рядку приймаються кілька процесів, ви можете скористатися розширенням дужки оболонки (наприклад, в Bash) для управління кількома процесами:

supervisorctl restart process{1..4}

розширюється оболонкою в

supervisorctl restart process1 process2 process3 process4

ніби ти це явно набрав.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.