有没有一种“推荐的方式”来禁用Debian中的服务? (禁用=服务已安装,但在启动机器时不会自动启动。)
我知道你可以update-rc.d -f service remove rcX.d update-rc.d -f service remove (基本上删除rcX.d中的链接),但是这样做会丢失服务的序列号( SXXservice ,XX是序列号),使生活当你想重新启用服务时更难。 我也知道,我可以重命名rcX.d的链接,以便它们不以S开头(或将它们移到其他地方),但是我想知道是否有一些“Debian认可的最佳实践”方式来执行此操作。
看看update-rc.d手册页。 安装Init脚本链接一节的第三段显示…
一个常见的系统pipe理错误是删除链接,认为这将“禁用”服务,即这将阻止服务启动。 但是,如果所有链接都已被删除,那么在下次包升级时,包的postinst脚本将再次运行update-rc.d,这将在其出厂默认位置重新安装链接。 禁用服务的正确方法是将服务configuration为在默认启动的所有运行级别中停止。 在System V init系统中,这意味着将服务的符号链接从S重命名为K.
最后两句应该回答你的问题。 🙂
你可以试试“sysv-rc-conf”工具,让你的生活变得轻松一些。 它是其他系统的chkconfig工具。
只需在promp上键入:
sudo apt-get install sysv-rc-conf
干杯!
实际上, sysv-rc-conf甚至是由update-rc.d推荐的方法手册页:
请注意,这个程序是为了在包维护者脚本中使用而devise的,因此这些脚本只需要非常有限的function。 不鼓励系统pipe理员使用update-rc.d来pipe理运行级别。 他们应该直接编辑链接或使用运行级编辑器,如sysv-rc-conf和bum。
请参阅update-rc.d
据我所知,“Debian最佳做法”是卸载软件包 。 如果你不使用它们,你不应该安装软件包。 这就是Debian软件包全部configuration为开始安装的原因。
(那些可以在不运行的情况下安装的软件包通常会在其/etc/default/<packagename>configuration文件中设置为禁用启动)。