如何确保在启动时禁用服务?

出于某种原因,我需要在启动时禁用系统服务。 在我的例子中,这是Avahi守护进程。 我只是不希望它在启动时启动。

在以前的Ubuntu版本中(例如12.04)我可以做到

sudo update-rc.d avahi-daemon disable 

但是在14.04它显示

 update-rc.d: warning: start runlevel arguments (none) do not match avahi-daemon Default-Start values (2 3 4 5) update-rc.d: warning: stop runlevel arguments (none) do not match avahi-daemon Default-Stop values (0 1 6) System start/stop links for /etc/init.d/avahi-daemon do not exist. 

并且Avahi在启动时启动。 我怎么能禁用它? 我正在寻找命令行的方式来做到这一点。

请注意解释这里发生的事情? 最近的Ubuntu版本中的一些变化打破了update-rc.d的使用? 我怀疑我在这里遗漏了一些东西。

Ubuntu使用Upstart而不是SysV Init来启动服务。 因此,某些服务没有SysV Init脚本,而是/etc/init/ (不是/etc/init.d/ )中的Upstart作业描述文件。 对于那些update-rc.d不起作用。

使用

 echo manual | sudo tee /etc/init/avahi-daemon.override 

在启动时禁用avahi-daemon 。 将avahi-daemon替换avahi-daemon您想要停止的任何服务。

有关如何使用Upstart的更多信息,请参阅Upstart简介,Cookbook和最佳实践 。