Pregunta

Estoy ejecutando algunos procesos usando Supervisord, llamado Process1, Process2, ..., Process8. Si quiero reiniciar el proceso {1-4}, ¿cómo puedo hacerlo con supervisorctl?

¿Fue útil?

Solución

Supervisord es compatible grupos de procesos. Puede agrupar procesos en grupos nombrados 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

Se puede llamar al comando supervisorCTL con un nombre de grupo:

supervisorctl restart foo:

así como con múltiples nombres de procesos:

supervisorctl restart foo:cat1 cat2

Otros consejos

Ya que supervisorctl Acepta múltiples procesos en la línea de comandos, puede aprovechar la expansión de la abrazadera de shell (p. Ej., Bash) para controlar múltiples procesos:

supervisorctl restart process{1..4}

se expande por el caparazón dentro

supervisorctl restart process1 process2 process3 process4

Como si hubiera escrito eso explícitamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top