Предположим, у меня есть руководитель 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: Неужели никто не может помочь?
Вы можете заменить программу сценарием оболочки, который создаст блокировку или семафор для запуска одного или ограниченного числа экземпляров.