![在两个主管小组中运行程序](https://linux22.com/image/581743/%E5%9C%A8%E4%B8%A4%E4%B8%AA%E4%B8%BB%E7%AE%A1%E5%B0%8F%E7%BB%84%E4%B8%AD%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F.png)
假设我有一个主管的配置文件如下:
[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) 运行。然后我根据程序运行的类型 (type(X|Y)) 对程序进行分组,然后我还有另一个组 (type),其中包含上述所有定义的程序(配置文件中可能还有其他不相关的程序)。
问题在于,由于程序出现在两个不同的组中,因此主管会启动每个程序两次。所以我的问题是:有没有办法让一个程序出现在多个组中,但只启动一次(或者程序自行定义的次数(通过“numprocs”))?
编辑:真的没有人可以帮忙吗?
答案1
您可以用 shell 脚本替换该程序,该脚本将创建一个锁或信号量来启动一个或有限数量的实例。