Как остановить автоматический запуск Apache2 при загрузке?

174

Как остановить автоматический запуск Apache2 при загрузке? Кажется, я не могу найти опцию, которая отключает автоматический запуск при включении машины.

Никколо м.
источник
1
Возможно, кто-то может быть более конкретным, но я могу указать вам правильное направление ... в / etc есть каталоги для rc * .d, которые содержат все сценарии запуска / остановки, называемые, я думаю, сценариями инициализации. Вы увидите ссылки на скрипты, которые находятся в /etc/init.d и начинаются с «k» или «s», для «kill» или «start», и с номера, который является порядком.
Марти Фрид
Да, я знал о каталогах /etc/rcX.d, но я искал его, чтобы узнать о каком-то более приятном инструменте, чем просто переименование файлов вручную (жизнь слишком коротка). update-rc.dзаполнил эту пустоту.
Томаш Гандор

Ответы:

161

В папке /etc/init.d/вы найдете все сценарии инициализации для различных сервисов загрузки, таких как apache2, работа в сети и т. Д.

В зависимости от того, на каком уровне запуска запускается компьютер, запускаются разные службы. Таким образом, из /etc/init.d/папки каждый «сервис» связан с одной / многими / без папок уровня выполнения, названными из rc0.dв rc6.d.

Для простоты есть инструмент для удаления / добавления этих ссылок, следовательно, удаления или добавления скриптов при запуске и из него.

Чтобы отключить apache2, просто наберите:

sudo update-rc.d apache2 disable

Это отключает apache2 при запуске, но не удаляется, поэтому его можно включить снова. Чтобы удалить сценарии запуска apache2, сделайте следующее:

Чтобы удалить apache2, просто наберите:

sudo update-rc.d -f  apache2 remove

Это приведет к удалению всех папок уровня выполнения, связанных с apache2.

Tomodachi
источник
2
Также может помочь chkconfig - «chkconfig {service_name} off»
MCR
The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs. (...)
Больше
2
@ TomDogg, можете ли вы указать версии, с которыми вы работали? Этот ответ работает для Apache 2 в Ubuntu 14.04.3
Дейл Андерсон
1
Как восстановить сервис?
Евгений Коньков
9
Предупреждение! Это удалит сервис! Используйте sudo update-rc.d apache2 disable.
Эдуардо Куомо
195

Вы можете просто отключить его:

sudo update-rc.d apache2 disable

и затем, если вы хотели бы включить его снова:

sudo update-rc.d apache2 enable

в зависимости от проекта, над которым я работаю, удобно иметь доступ к сервису, если я хочу снова включить его.

gsullins
источник
4
enableвыдал мне ошибку вроде runlevel arguments (none) do not match LSB Default-Start values, но, sudo update-rc.d apache2 defaultsпохоже, успешно ее снова включил.
здесь
2
@ здесь sudo update-rc.d apache2 enableдля меня играли, как и ожидалось
Георгиос Плигоропулос
1
В Ubuntu Trusty он говорит мне: «Отключить | включить API нестабилен и может измениться в будущем».
Таннер
1
Не работает error: no runlevel symlinks to modify, aborting!. Однако apache2 работает и запускается автоматически.
Даниэль Кмак
update-rc.d: error: no runlevel symlinks to modify, aborting!
Больше
55

Теперь systemdмы можем использовать systemctlкоманды, чтобы предотвратить автоматический запуск службы при загрузке.

вот пример:

sudo systemctl disable apache2

Вы по-прежнему сможете запускать и останавливать службу, но она не запустится при загрузке.

mchid
источник
2
Linux Mint по-прежнему основан на Ubuntu 14.04. Ubuntu начинает использовать systemd с 15.04.
twan163
1
@dragonmnl, как сказал twan163, systemd для более новых версий (Debian Jessie или эквивалент +)
mchid
1
это отлично сработало на Debian
Anupam
1
правильный ответ для Debian 9+
Джон
1
Если встречаете update-rc.d: error: no runlevel symlinks to modify, aborting!, воссоздайте любые ниже отсутствующие симлинки; затем повторите попытку: /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>
Амил Вадувавара
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
Бен Виндинг
источник