Uruchamiam kilka procesów przy użyciu supervisord, nazwanych proces1, proces2, ..., proces8. Jeśli chcę ponownie uruchomić proces {1-4}, jak mogę to zrobić za pomocą supervisorctl?
Uruchamiam kilka procesów przy użyciu supervisord, nazwanych proces1, proces2, ..., proces8. Jeśli chcę ponownie uruchomić proces {1-4}, jak mogę to zrobić za pomocą supervisorctl?
Odpowiedzi:
supervisord wspiera grupy procesowe . Możesz grupować procesy w nazwane grupy i zbiorczo nimi zarządzać.
[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
Polecenie supervisorctl można wywołać podając nazwę grupy:
supervisorctl restart foo:
a także z wieloma nazwami procesów:
supervisorctl restart foo:cat1 cat2
supervisorctl restart foo:*
wyjaśnia to, co się dzieje.
Ponieważ supervisorctl
akceptuje wiele procesów w wierszu poleceń, możesz skorzystać z rozwijania nawiasów klamrowych powłoki (np. W Bash), aby kontrolować wiele procesów:
supervisorctl restart process{1..4}
jest rozszerzany przez powłokę do
supervisorctl restart process1 process2 process3 process4
jakbyś to wpisał wprost.