Назад | Перейти на главную страницу

Запустите программу в двух группах супервайзеров

Предположим, у меня есть руководитель config файл вроде этого:

[program:type1_X]
command=my_program_1 X

[program:type1_Y]
command=my_program_1 Y

...

[program:type2_X]
command=my_program_2 X

[program:type2_Y]
command=my_program_2 Y

...

[group:type1]
programs=type1_X,type1_Y

[group:type2]
programs=type2_X,type2_Y

[group:type]
programs:type1_X,type1_Y,type2_X,type2_Y

Итак, я люблю определять два типа программ (my_program_ (X | Y)), которые работают с двумя наборами разных параметров (X&Y). Затем я группирую программы по типу программы, которую они запускают (тип (X | Y)), а затем у меня есть еще одна группа (тип), которая включает все указанные выше программы (в файле конфигурации могут быть другие несвязанные программы).

Проблема в том, что супервизор запускает каждую программу дважды, поскольку она входит в две разные группы. Итак, мой вопрос: есть ли способ иметь одну программу в нескольких группах, но запускать ее только один раз (или, как бы то ни было, программа определяет себя (через "numprocs"))?

edit: Неужели никто не может помочь?

Вы можете заменить программу сценарием оболочки, который создаст блокировку или семафор для запуска одного или ограниченного числа экземпляров.