Я запускаю несколько процессов с помощью supervisord с именами process1, process2, ..., process8. Если я хочу перезапустить процесс {1-4}, как я могу сделать это с помощью supervisorctl?
Я запускаю несколько процессов с помощью supervisord с именами process1, process2, ..., process8. Если я хочу перезапустить процесс {1-4}, как я могу сделать это с помощью supervisorctl?
Ответы:
supervisord поддерживает группы процессов . Вы можете группировать процессы в именованные группы и управлять ими коллективно.
[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
как будто вы напечатали это явно.