Как перезапустить только определенные процессы с использованием Supervisorctl?

StackOverflow https://stackoverflow.com/questions/9301494

  •  25-10-2019
  •  | 
  •  

Вопрос

Я запускаю несколько процессов, используя Superisorsord, названный Process1, Process2, ..., Process8. Если я хочу перезапустить процесс {1-4}, как я могу это сделать с помощью Supervisorctl?

Это было полезно?

Решение

Superissord поддерживает Процесс группы. Анкет Вы можете группировать процессы в названные группы и управлять ими коллективно.

[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

Команда SupervisorCtl может быть вызвана с именем группы:

supervisorctl restart foo:

а также с несколькими именами процессов:

supervisorctl restart foo:cat1 cat2

Другие советы

С supervisorctl Принимает несколько процессов в командной строке, вы можете воспользоваться расширением скорлупы (например, в Bash) для управления несколькими процессами:

supervisorctl restart process{1..4}

расширен от оболочки в

supervisorctl restart process1 process2 process3 process4

Как будто вы напечатали это явно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top