Jak zatrzymać automatyczne uruchamianie Apache2 podczas uruchamiania?

173

Jak zatrzymać automatyczne uruchamianie Apache2 podczas uruchamiania? Nie mogę znaleźć opcji, która wyłącza automatyczne uruchamianie po włączeniu urządzenia.

niccolo m.
źródło
1
Być może ktoś może być bardziej szczegółowy, ale mogę wskazać ci właściwy kierunek ... w / etc, istnieją katalogi dla rc * .d, które zawierają wszystkie skrypty start / stop, zwane, jak sądzę, skryptami init. Zobaczysz linki do skryptów, które znajdują się w /etc/init.d i zaczynają się na „k” lub „s”, na „kill” lub „start” oraz na liczbie, która jest kolejnością.
Marty Fried
Tak, wiedziałem o katalogach /etc/rcX.d, ale szukałem go, aby dowiedzieć się o jakimś ładniejszym narzędziu niż po prostu ręcznej zmianie nazw plików (życie jest zbyt krótkie). update-rc.dwypełnił tę pustkę.
Tomasz Gandor

Odpowiedzi:

160

W folderze /etc/init.d/znajdziesz wszystkie skrypty inicjujące dla różnych usług uruchamiania, takich jak apache2, praca w sieci itp.

W zależności od poziomu uruchamiania komputera, uruchamiane są różne usługi. Tak więc z /etc/init.d/folderu każda „usługa” jest połączona z jednym / wieloma / brakiem folderów poziomu uruchamiania o nazwach od rc0.ddo rc6.d.

Aby uprościć sprawę, istnieje narzędzie do usuwania / dodawania tych łączy, a zatem usuwania lub dodawania skryptów do i od uruchomienia.

Aby wyłączyć apache2, po prostu wpisz:

sudo update-rc.d apache2 disable

Wyłącza to apache2 podczas uruchamiania, ale nie jest usuwany, więc można go ponownie włączyć. Aby usunąć skrypty startowe apache2, wykonaj następujące czynności:

Aby usunąć apache2, po prostu wpisz:

sudo update-rc.d -f  apache2 remove

Spowoduje to usunięcie wszystkich folderów poziomu uruchamiania, które są połączone z Apache2.

tomodachi
źródło
2
chkconfig może także pomóc - „chkconfig {nazwa_usługi} wyłączony”
MCR
The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs. (...)
Już
2
@TomDogg, czy możesz podać wersje, z którymi pracujesz? Ta odpowiedź działa dla Apache 2 na Ubuntu 14.04.3
Dale Anderson
1
Jak przywrócić usługę?
Eugen Konkov
9
Ostrzeżenie! To USUNĄĆ usługę! Użyj sudo update-rc.d apache2 disable.
Eduardo Cuomo,
194

możesz po prostu wyłączyć:

sudo update-rc.d apache2 disable

a następnie, jeśli chcesz włączyć to ponownie:

sudo update-rc.d apache2 enable

w zależności od projektu, nad którym pracuję, wygodnie jest mieć tę usługę wygodnie dostępną, jeśli chcę ją ponownie włączyć.

gsullins
źródło
4
enablepodał mi błąd podobny do runlevel arguments (none) do not match LSB Default-Start values, ale sudo update-rc.d apache2 defaultswydaje się, że ponownie go pomyślnie włączono.
tutaj
2
@here sudo update-rc.d apache2 enablegrał zgodnie z oczekiwaniami
Georgios Pligoropoulos
1
Na Ubuntu Trusty mówi mi: „Interfejs API enable | enable nie jest stabilny i może ulec zmianie w przyszłości”.
Tanner
1
Nie działa - error: no runlevel symlinks to modify, aborting!. Jednak apache2 działa i uruchamia się automatycznie.
Daniel Kmak
update-rc.d: error: no runlevel symlinks to modify, aborting!
Już
55

Dzięki systemdmożemy teraz używać systemctlpoleceń, aby zapobiec automatycznemu uruchamianiu usługi podczas rozruchu.

Oto przykład:

sudo systemctl disable apache2

Nadal będziesz mógł uruchomić i zatrzymać usługę, ale nie uruchomi się ona podczas rozruchu.

mchid
źródło
2
Linux Mint jest nadal oparty na Ubuntu 14.04. Ubuntu zaczyna korzystać z systemd od 15.04.
twan163
1
@dragonmnl jak powiedział twan163, systemd jest dla nowszych wersji (debian jessie lub odpowiednik +)
mchid
1
działało to świetnie na Debianie
Anupam,
1
właściwa odpowiedź dla Debiana 9+
Jan
1
W przypadku napotkania update-rc.d: error: no runlevel symlinks to modify, aborting!odtwórz wszystkie brakujące łącza sim; następnie spróbuj ponownie: /etc/rc0.d/K01 <usługa> /etc/rc1.d/K01 <usługa> /etc/rc2.d/S99 <usługa> /etc/rc3.d/S99 <usługa> / etc / rc4.d / S99 <usługa> /etc/rc5.d/S99 <usługa> /etc/rc6.d/K01 <usługa>
Amil Waduwawara
5

Pomyślałem, że dodam tylko do odpowiedzi @gsullins i @tomodachi dla przyszłych czytelników, którzy skorzystali z zaakceptowanej odpowiedzi.

Jeśli już używałeś:

sudo update-rc.d apache2 remove

Możesz użyć argumentu, defaultsaby dodać apache2 z powrotem do autostartu

sudo update-rc.d apache2 defaults

Następnie możesz włączyć / wyłączyć

sudo update-rc.d apache2 disable
sudo update-rc.d apache2 enable
Ben Winding
źródło