web-dev-qa-db-fra.com

comment ne redémarrer que certains processus utilisant supervisorctl?

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?

96
Thi Duong Nguyen

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
159
mher

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.

2
Dennis Williamson