在安装软件包时重新启动依赖服务的正确方法是什么?
我正在创建一个配置包,并且想停止并重新启动其配置受到影响的服务。现在我正在使用service [stop|restart]in {pre,post}{inst,rm}方式。我读了一个问题的地方,invoke-rc.d是正确的方法,因为它供奉有关服务的用户的喜好。但是,我找不到关于此的任何指南。有人知道这样的准则吗?或对我应该选择哪种方式有任何建议?该软件包仅供内部使用,在未来两年内可能仅用于14.04。但是,我想为继任者留下尽可能清晰的状态systemd,我的想法也是如此。 从invoke-rc.d手册页: Debian软件包的维护者脚本对初始化脚本的所有访问都应通过invoke-rc.d完成。 摘自《 Debian政策手册》第9章第3.3节: 维护人员应使用update-rc.d和invoke-rc.d程序提供的抽象层来处理其程序包脚本中的初始化脚本,例如postinst,prerm和postrm。 ... 软件包维护者脚本必须使用invoke-rc.d来调用/etc/init.d/*初始化脚本,而不是直接调用它们。 Debian一直在使用sysv-init并将直接转移到systemd,我想该政策手册将在适当的时候进行更新以供参考systemctl。但是,我不确定的是:我应该使用invoke-rc.d而不是service吗?我可以告诉dpkg我(通过触发器)对某些文件感兴趣,那么有没有办法告诉dpkg我对某些服务也很感兴趣并可以dpkg重新启动/重新加载呢? 需要说明的是:我不是在编写初始化脚本。我为程序包提供了其他应用程序的配置,例如Puppet,NTP等,因此我停止并重新启动了脚本中的相应服务。 例如,这里是有关invoke-rc.dvs 的Docker问题service。这个问题仍未解决,只有一个人(可能是维护者)评论说,他们绝对有兴趣以正确的方式进行操作-显然我们俩都不确定那是什么。(我的问题与该问题无关。)