3

我已经构建了几个自定义 .deb。它们都依赖于 apache,升级任何包 apache 后都需要重新启动。

从 postinst 天真地重新启动 apache 我会为我升级的每个包重新启动,这真的很慢。有谁知道是否有避免这种情况的好方法?Dpkg 触发器似乎是正确的方法,但我似乎找不到太多的文档方式。apache是​​否定义了自己的触发器来激活。如果是这样,我该如何称呼它?

4

1 回答 1

1

是的,dpkg 触发器在这里是正确的方法。不,我不相信有任何预先存在的触发器可以为你解决这个问题。

在最简单的情况下,您的设置可能包括以下内容:

  • 一些常见的包,所有使用 apache 的 deb 都将依赖于它。我们称之为“apache-coordination”。
  • apache-coordination 的DEBIAN/triggers文件应该包含类似interest apache-coordination-reload.
  • apache-coordinationpostinst应该通过执行实际的 apache 重新加载或重新启动(理想情况下通过或类似的方式,以便尊重运行级别)来处理使用参数“ triggered”调用并且“ ”在第二个参数中某处的情况。apache-coordination-reloadinvoke-rc.d
  • 您的其他软件包应在适当时激活apache-coordination-reload触发器。这可以通过DEBIAN/triggers为每个包含activate apache-coordination-reload.
于 2012-05-07T20:58:59.813 回答