Estou executando alguns processos usando supervisord, denominado process1, process2, ..., process8. Se eu quiser reiniciar o processo {1-4}, como posso fazer isso com o supervisorctl?
Estou executando alguns processos usando supervisord, denominado process1, process2, ..., process8. Se eu quiser reiniciar o processo {1-4}, como posso fazer isso com o supervisorctl?
Respostas:
supervisord oferece suporte a grupos de processos . Você pode agrupar processos em grupos nomeados e gerenciá-los coletivamente.
[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
O comando supervisorctl pode ser chamado com um nome de grupo:
supervisorctl restart foo:
bem como com vários nomes de processo:
supervisorctl restart foo:cat1 cat2
supervisorctl restart foo:*
deixa o que está acontecendo mais claro.
Uma vez que supervisorctl
aceita vários processos na linha de comando, você pode tirar proveito da expansão da chave do shell (por exemplo, no Bash) para controlar vários processos:
supervisorctl restart process{1..4}
é expandido pelo shell em
supervisorctl restart process1 process2 process3 process4
como se você tivesse digitado isso explicitamente.