J'exécute quelques processus en utilisant supervisord, nommé processus1, processus2, ..., processus8. Si je veux redémarrer le processus {1-4}, comment puis-je le faire avec supervisorctl?
supervisord prend en charge groupes de processus . Vous pouvez regrouper les processus dans des groupes nommés et les gérer collectivement.
[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
la commande supervisorctl peut être appelée avec un nom de groupe:
supervisorctl restart foo:
ainsi qu'avec plusieurs noms de processus:
supervisorctl restart foo:cat1 cat2
Puisque supervisorctl
accepte plusieurs processus sur la ligne de commande, vous pouvez tirer parti de l’extension d’accolade du shell (par exemple, dans Bash) pour contrôler plusieurs processus:
supervisorctl restart process{1..4}
est étendu par le shell dans
supervisorctl restart process1 process2 process3 process4
comme si vous aviez tapé cela explicitement.