如何阻止Apache2在启动时自动启动?


173

如何阻止Apache2在启动时自动启动?打开机器后,似乎找不到禁用自动启动的选项。


1
也许有人可以更具体一些,但是我可以为您指明正确的方向……在/ etc中,有rc * .d的目录,其中包含所有启动/停止脚本,我认为它们是初始化脚本。您将看到/etc/init.d中脚本的链接,这些脚本以“ k”或“ s”开头,表示“ kill”或“ start”,以及一个数字(按顺序)。
马蒂·弗里德

是的,我知道/etc/rcX.d目录,但我进行了搜索,以找到一些更好的工具,而不仅仅是手动重命名文件(寿命太短)。update-rc.d填补了这个空白。
Tomasz Gandor 2014年

Answers:


160

在该文件夹下,/etc/init.d/您会找到用于不同启动服务的所有初始化脚本,例如apache2,网络等。

根据计算机启动的运行级别,启动不同的服务。因此,从/etc/init.d/文件夹中每个“服务”链接到一个/多个/没有运行级别从命名的文件夹rc0.drc6.d

为了简单起见,有一个用于删除/添加这些链接的工具,因此可以从启动中删除或添加脚本。

要禁用 apache2,只需键入:

sudo update-rc.d apache2 disable

这会在启动时禁用apache2,但不会将其删除,因此可以再次启用它。要删除apache2启动脚本,请执行以下操作:

要删除 apache2,只需键入:

sudo update-rc.d -f  apache2 remove

这样做将导致链接到apache2的所有运行级别文件夹被删除。


2
chkconfig也可能会帮助-“ chkconfig {service_name} off”
MCR 2012年

不再工作了:The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs. (...)
TomDogg

2
@TomDogg,您可以指定使用的版本吗?此答案适用于Ubuntu 14.04.3上的Apache 2
Dale Anderson

1
如何还原服务?
Eugen Konkov '16

9
警告!这将删除服务!使用sudo update-rc.d apache2 disable
Eduardo Cuomo

194

您可以通过以下方法将其禁用:

sudo update-rc.d apache2 disable

然后如果您想再次启用它:

sudo update-rc.d apache2 enable

根据我正在从事的项目,如果希望重新启用该服务,可以方便地使用该服务。


4
enable给了我类似的错误runlevel arguments (none) do not match LSB Default-Start values,但sudo update-rc.d apache2 defaults似乎已成功重新启用了它。
这里

2
@here sudo update-rc.d apache2 enable发挥了我的预期
Georgios Pligoropoulos 2014年

1
在Ubuntu Trusty上,它告诉我“ disable | enable API不稳定,将来可能会更改。”
Tanner 2014年

1
不工作- error: no runlevel symlinks to modify, aborting!。但是,apache2正在运行并自动启动。
Daniel Kmak

不再工作了:update-rc.d: error: no runlevel symlinks to modify, aborting!
TomDogg

55

现在,systemd我们可以使用systemctl命令来防止服务在启动时自动启动。

这是一个例子:

sudo systemctl disable apache2

您仍然可以启动和停止该服务,但它不会在启动时启动。


2
Linux Mint仍基于Ubuntu 14.04。Ubuntu从15.04开始使用systemd。
twan163

1
如twan163所说,@ dragonmnl是systemd用于较新版本的(debian jessie或同等的+)
mchid 2015年

1
这在Debian上效果很好
Anupam

1
debian 9+的正确答案
John

1
如果遇到update-rc.d: error: no runlevel symlinks to modify, aborting!,请重新创建以下所有缺少的simlink;然后重试:/etc/rc0.d/K01 <服务> /etc/rc1.d/K01 <服务> /etc/rc2.d/S99 <服务> /etc/rc3.d/S99 <服务> / etc / rc4.d / S99 <service> /etc/rc5.d/S99 <service> /etc/rc6.d/K01 <service>
Amil Waduwawara

5

我想我只是将@gsullins和@tomodachi添加到答案中,供以后使用接受答案的读者使用。

如果您已经使用过:

sudo update-rc.d apache2 remove

您可以使用参数defaults将apache2重新添加到自动启动中

sudo update-rc.d apache2 defaults

这样您就可以启用/禁用

sudo update-rc.d apache2 disable
sudo update-rc.d apache2 enable
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.