在Debian中禁用服务的推荐方法


10

是否有“推荐的方式”来禁用Debian中的服务?(禁用=已安装该服务,但在计算机启动时不会自动启动。)

我知道您可以update-rc.d -f service remove(基本上会删除中的链接rcX.d),但是这样做会丢失服务的序列号(SXXservice,其中XX是序列号),使您在想重新启用该服务时更加困难。我也知道我可以重命名链接,rcX.d这样它们就不会以它们开头S(或将它们移动到其他地方),但是我想知道是否有某种“ Debian批准的最佳实践”方法来做到这一点。

Answers:


12

看一下update-rc.d手册页。名为安装Init脚本链接的部分的第三段显示为…

常见的系统管理错误是删除链接,认为这将“禁用”服务,即,这将阻止服务启动。但是,如果所有链接都已删除,则在下次升级程序包时,程序包的postinst脚本将再次运行update-rc.d,这将在其出厂默认位置重新安装链接。禁用服务的正确方法是将服务配置为在默认情况下在其启动的所有运行级别中均已停止。在System V初始化系统中,这意味着将服务的符号链接从S重命名为K。

最后两句话应该回答您的问题。:-)


例如:sudo update-rc.d postgresql disable
圣路易斯

5

您可以尝试使用“ sysv-rc-conf”实用程序来使您的生活更轻松一些。它更多是其他系统的chkconfig工具。

只需输入提示:

须藤apt-get install sysv-rc-conf

干杯!


很好的工具,谢谢。我看到它也正确禁用了服务(即,将符号链接重命名为K ...)。
Heinzi 2010年

2

实际上,sysv-rc-conf即使update-rc.d手册页也建议使用此方法:

请注意,该程序是为在软件包维护程序脚本中使用而设计的,因此,仅具有此类脚本所需的功能非常有限。不鼓励系统管理员使用update-rc.d来管理运行级别。他们应该直接编辑链接,或者改用运行级别编辑器,例如sysv-rc-conf和bum。


0

据我了解,“ Debian最佳实践”是卸载软件包。如果不使用软件包,则不应该安装它们。这就是为什么Debian软件包都配置为在安装时启动。

(少数几个可能有用而无需运行即可安装的软件包通常在其/etc/default/<packagename>配置文件中有一个设置来禁用启动。)


2
你误会了。“启动时不会自动启动”并不表示“根本没有使用该程序包”。作为一个简单的示例,我可能希望我的SSH服务器根据需要由xinetd启动,而不是在启动时作为守护程序启动。
quack quixote 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.