Я запускаю кілька процесів за допомогою supervisord, найменування process1, process2, ..., process8. Якщо я хочу перезапустити процес {1-4}, як це зробити з supervisorctl?
Я запускаю кілька процесів за допомогою supervisord, найменування process1, process2, ..., process8. Якщо я хочу перезапустити процес {1-4}, як це зробити з supervisorctl?
Відповіді:
Супервізор підтримує групи процесів . Ви можете групувати процеси в названі групи та керувати ними колективно.
[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
supervisorctl restart foo:*
що стає зрозумілішим те, що відбувається.
Оскільки supervisorctl
в командному рядку приймаються кілька процесів, ви можете скористатися розширенням дужки оболонки (наприклад, в Bash) для управління кількома процесами:
supervisorctl restart process{1..4}
розширюється оболонкою в
supervisorctl restart process1 process2 process3 process4
ніби ти це явно набрав.