Sto eseguendo alcuni processi usando supervisord, denominato process1, process2, ..., process8. Se voglio riavviare il processo {1-4}, come posso farlo con supervisorctl?
Sto eseguendo alcuni processi usando supervisord, denominato process1, process2, ..., process8. Se voglio riavviare il processo {1-4}, come posso farlo con supervisorctl?
Risposte:
supervisord supporta i gruppi di processi . È possibile raggruppare i processi 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
Il comando supervisorctl può essere chiamato con un nome di gruppo:
supervisorctl restart foo:
così come con più nomi di processo:
supervisorctl restart foo:cat1 cat2
supervisorctl restart foo:*
renda più chiaro ciò che sta accadendo.
Poiché supervisorctl
accetta più processi sulla riga di comando, puoi sfruttare l'espansione del tutore di shell (ad esempio in Bash) per controllare più processi:
supervisorctl restart process{1..4}
viene espanso dalla shell in
supervisorctl restart process1 process2 process3 process4
come se l'avessi digitato esplicitamente.