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é supervisorctlaccetta 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.