Debian 是否真的有书面政策在安装时启动服务?

lio*_*ori 13 debian services

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

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

Ste*_*itt 18

这在Policy 的“管理链接”部分中得到解决,该部分描述了应如何处理到服务的链接:

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

这里我指的是广义上的“自动启动”;从技术上讲,由于这部分策略只处理“链接”,配置服务在启动时启动,它可以被理解为只需要这个,但这会导致不一致的系统状态(服务安装但直到下一次才启动开机)。本节和下一节的建议:

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

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

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

政策的其他部分假设了这一点,或者至少是出于支持这一点的要求;因此在配置文件部分

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

如有必要,Policy 允许相反的行为:

但是,如果守护程序不应自动启动,除非本地管理员明确要求这样做,而是添加到您的 postinst 脚本中:

update-rc.d package defaults-disabled
Run Code Online (Sandbox Code Playgroud)

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

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

  • @MichaelHampton,在制定该政策时,人们只会安装他们需要的服务。桌面环境包含所有内容,以防用户可能需要它是最近的开发。 (4认同)
  • 有一天,我很想确切地知道为什么要制定这项政策。对我来说似乎很危险。 (2认同)