Debian 实际上有在安装时启动服务的书面政策吗?

Debian 实际上有在安装时启动服务的书面政策吗?

Debian 软件包通常在安装后立即启动服务。这是一个众所周知的现象,鉴于 网页 解释 如何禁用此行为。据我记得,这一点在systemd被采用之前就已经存在了。

我的问题是,这是官方政策吗?这条规则有写在任何地方吗?我尝试在中寻找它Debian 政策,但找不到相关注释。

答案1

这是在政策的“管理链接”部分,其中描述了如何处理服务链接:

默认行为是启用自动启动程序包的守护进程。

我在这里读的是广义上的“自动启动”;从技术上讲,因为本政策的这一部分仅涉及“链接”,IE,将服务配置为在启动时启动,可以理解为只需要这样做,但这会导致系统状态不一致(IE已安装但直到下次启动才启动的服务)。本节中的建议和下一个:

对于包来说,最简单的方法是不直接调用update-rc.d,而是使用 debhelper 程序update-rc.d自动添加所需的调用。参见dh_installinitdh_installsystemd等。

对于包来说,最简单的方法是不直接调用invoke-rc.d,而是使用 debhelper 程序invoke-rc.d自动添加所需的调用。参见dh_installinitdh_installsystemd等。

导致默认情况下立即启用并启动的服务。

政策的其他部分假定了这一点,或者至少是由于支持这一点的要求而产生的;因此在配置文件部分:

这些脚本不需要配置包的每个可能的选项,而只需配置那些使包在给定系统上运行所必需的选项。理想情况下,系统管理员不必执行除脚本(半)自动完成的配置之外的任何配置postinst

但如果有必要,策略允许相反的行为:

但是,如果除非本地管理员明确请求,否则守护进程不应自动启动,请添加到您的 postinst 脚本中:

update-rc.d package defaults-disabled

也可以在本地配置默认值;例如,debootstrap通常设置 -style chroot 来跳过正在运行的服务。

这部分策略需要针对 systemd 进行更新,但一般原则仍然适用。

相关内容