2011-06-01 71 views
3

我有几个自定义的.debs,我已经建立。他们都依赖于Apache,升级任何软件包后需要重新启动apache。在.deb安装之后触发apache重新启动的好方法是什么?

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

+1

我假设这是你已经看过的资源之一(并且决定是不够的):http://www.seanius.net/blog/2009/09/dpkg-triggers-howto/ – 2011-06-01 01:11:15

+0

我看了一下,但是,虽然它提到了apache,但它没有提供关于如何去做的细节(并且git链接被破坏)。我希望这样做是很普遍的事情,有人可能知道一个优雅的解决方案(如提供触发器的Apache)。 – Fasaxc 2011-06-01 01:58:58

回答

1

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

在其最简单的,你的设置可能包括类似以下内容:

  • 一些常用的包,在其所有使用Apache的deb包的依赖。我们称之为“apache-coordination”。
  • apache-coordination's DEBIAN/triggers文件应该包含一行,如interest apache-coordination-reload
  • Apache的协调的postinst应该处理它被调用的说法“triggered”并在“apache-coordination-reload”的情况则介于第二个参数,通过最好是通过invoke-rc.d或类似的东西执行实际的apache重装或重启(,所以运行级别受到尊重)。
  • 您的其他软件包应在适当时激活apache-coordination-reload触发器。这可以通过运送DEBIAN/triggers文件来完成,其中每个文件包含activate apache-coordination-reload
+0

链接到触发器的文档将很有用:http://sources.debian.net/src/dpkg/stable/doc/triggers.txt/ – richvdh 2015-08-13 15:10:00

相关问题