J'exécute quelques processus en utilisant Supervisord, nommé process1, process2, ..., process8. Si je souhaite redémarrer le processus {1-4}, comment puis-je le faire avec supervisorctl?
J'exécute quelques processus en utilisant Supervisord, nommé process1, process2, ..., process8. Si je souhaite redémarrer le processus {1-4}, comment puis-je le faire avec supervisorctl?
Réponses:
supervisord prend en charge les 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
supervisorctl restart foo:*
que ce qui se passe est plus clair.
Comme supervisorctl
accepte plusieurs processus sur la ligne de commande, vous pouvez profiter de l'expansion des accolades shell (par exemple dans Bash) pour contrôler plusieurs processus:
supervisorctl restart process{1..4}
est étendu par la coque en
supervisorctl restart process1 process2 process3 process4
comme si vous l'aviez tapé explicitement.