似乎在 upstart 中指定服务A
对服务的依赖关系的可接受方法B
是在撤销依赖方向:给服务B
一个start on starting A
节。
我想避免这种情况,原因有二:
B
当有新的服务依赖于它时,修改配置文件似乎很奇怪:新服务应该声明它是依赖关系;B
不应该了解它们。我想通过从已经构建的依赖图拓扑进行来自动化服务层次结构的构建,而为此而将其转换为反向依赖图是不雅的。
我以为我可以在pre-start
配置文件中的脚本节中启动依赖服务,但看起来如果我还有setuid
和setgid
节---从那时起pre-start
脚本将与该用户/组一起运行。
是否有一种惯用的方法可以做到这一点(即声明依赖关系而不是反向依赖关系)?这个答案是不是我想要什么因为我不想还必须编写非 upstart 的初始化脚本。
(我认为在这种情况下start on started B
forA
会起作用,但我不确定如果A
有多个依赖项,它是否会起作用:会start on started B and started C
起作用吗?如果我启动B
然后C
,会A
同时获取两个事件吗?此外,即使在一个依赖项的情况下,这也会导致逻辑错误:start on started B
说B
已经开始是一个充足的开始的条件A
。但我想说的是,B
开始是一个必要的启动的条件A
,以及启动操作A
应满足的条件。)