Estoy ejecutando algunos procesos usando supervisord, llamado process1, process2, ..., process8. Si quiero reiniciar el proceso {1-4}, ¿cómo puedo hacerlo con supervisorctl?
Estoy ejecutando algunos procesos usando supervisord, llamado process1, process2, ..., process8. Si quiero reiniciar el proceso {1-4}, ¿cómo puedo hacerlo con supervisorctl?
Respuestas:
supervisord apoya grupos de proceso . Puede agrupar procesos en grupos con nombre y administrarlos colectivamente.
[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
El comando supervisorctl se puede llamar con un nombre de grupo:
supervisorctl restart foo:
así como con múltiples nombres de procesos:
supervisorctl restart foo:cat1 cat2
supervisorctl restart foo:*
aclara lo que está sucediendo.
Dado que supervisorctl
acepta múltiples procesos en la línea de comando, puede aprovechar la expansión de llaves de shell (por ejemplo, en Bash) para controlar múltiples procesos:
supervisorctl restart process{1..4}
es expandido por el caparazón en
supervisorctl restart process1 process2 process3 process4
como si lo hubiera escrito explícitamente.