在 Solaris smf 上先执行 运行 一项服务再执行另一项服务

Enforce running a service before another one on Solaris smf

我正在尝试使用 Solaris SMF 系统将其他服务设置为依赖于我的(以便首先强制我的 运行)。

我知道我可以在其他服务清单中使用该标签并使其依赖于我的服务,但出于明显的原因我想避免编辑其他服务清单。

根据 this link,在“Dependencies”部分下,据说这是可能的,但我不知道如何实现。

谢谢

您在清单中使用 dependent XML 元素而不是 dependency 元素来执行此操作。

假设您希望 "serviceA" 依赖于名为 "serviceMine" 的奇特新服务,但您无法更改 "serviceA" 的清单。

然后在 "serviceMine" 的清单中你会做类似

的事情
<dependent  name='serviceMine_dependency'
             grouping='require_all'
             type='service'
             restart_on='restart'>
  <service_fmri value='svc:/application/foo/serviceA' />
</dependent>

文档

当事情变得艰难时,我有时会求助于 DTD 中的文档来获取 SMF 清单。您可以在本地系统上的 /usr/share/lib/xml/dtd/service_bundle.dtd.1 处阅读它。作为参考还是很有用的。