是否有“推荐的方法”来禁用 Debian 中的服务?(禁用 = 服务已安装但不会在机器启动时自动启动。)
我知道你可以这样做update-rc.d -f service remove
(基本上就是删除 中的链接rcX.d
),但这样做会丢失服务的序列号(SXXservice
,其中 XX 是序列号),当你想要重新启用服务时,情况会变得更加困难。我还知道我可以重命名 中的链接,rcX.d
这样它们就不会以 开头S
(或将它们移动到其他地方),但我想知道是否有一些“Debian 认可的最佳实践”方法来做到这一点。
答案1
看一下 update-rc.d 手册页。该节的第三段名为安装初始化脚本链接读…
一个常见的系统管理错误是删除链接,认为这将“禁用”服务,即这将阻止服务启动。但是,如果所有链接都已删除,则下次升级软件包时,软件包的 postinst 脚本将再次运行 update-rc.d,这将重新安装链接到其出厂默认位置。禁用服务的正确方法是将服务配置为在所有默认启动的运行级别中停止。在 System V init 系统中,这意味着将服务的符号链接从 S 重命名为 K。
最后两句话应该回答了你的问题。:-)
答案2
您可以尝试“sysv-rc-conf”实用程序,让您的生活更轻松。它更像是其他系统的 chkconfig 工具。
只需在提示符下输入:
sudo apt-get 安装 sysv-rc-conf
干杯!
答案3
实际上,sysv-rc-conf
update-rc.d 手册页也推荐这种方法:
请注意,此程序设计用于软件包维护者脚本,因此,仅具有此类脚本所需的非常有限的功能。不鼓励系统管理员使用 update-rc.d 来管理运行级别。他们应该直接编辑链接或使用运行级别编辑器(如 sysv-rc-conf 和 bum)。
答案4
据我了解,“Debian 最佳实践”是卸载软件包。如果您不使用软件包,则不应安装它们。这就是为什么 Debian 软件包都配置为在安装时启动。
(那些安装后不运行的少数软件包通常在其/etc/default/<packagename>
配置文件中有一个设置以禁用启动。)