come riavviare solo determinati processi utilizzando supervisorctl?
-
25-10-2019 - |
Domanda
sto correndo un paio di processi utilizzando supervisord, chiamato process1, process2, ..., process8. Se voglio processo di riavvio {1-4}, come posso farlo con supervisorctl?
Soluzione
href="http://supervisord.org/configuration.html#group-x-section-settings" . È possibile processi di gruppo in gruppi denominati e gestirli collettivamente.
[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
Comando supervisorctl può essere chiamato con il nome del gruppo:
supervisorctl restart foo:
così come con i nomi dei processi multipli:
supervisorctl restart foo:cat1 cat2
Altri suggerimenti
Da supervisorctl
accetta più processi sulla linea di comando, è possibile usufruire di espansione delle graffe shell (per esempio in Bash) per controllare molteplici processi:
supervisorctl restart process{1..4}
viene espanso dalla shell in
supervisorctl restart process1 process2 process3 process4
come se si fosse digitato che in modo esplicito.