Wie verhindere ich, dass Apache2 beim Booten automatisch gestartet wird?

173

Wie verhindere ich, dass Apache2 beim Booten automatisch gestartet wird? Ich kann anscheinend keine Option finden, die den automatischen Start beim Einschalten der Maschine deaktiviert.

niccolo m.
quelle
1
Vielleicht kann jemand spezifischer sein, aber ich kann Sie in die richtige Richtung weisen ... In / etc gibt es Verzeichnisse für rc * .d, die alle Start- / Stopp-Skripte enthalten, die, glaube ich, Init-Skripte heißen. Sie sehen Links zu Skripten, die sich in /etc/init.d befinden und entweder mit "k" oder "s" für "kill" oder "start" beginnen, sowie eine Nummer, die die Reihenfolge angibt.
Marty Fried
Ja, ich wusste über die Verzeichnisse /etc/rcX.d Bescheid, aber ich suchte danach, um ein besseres Tool zu finden, als nur Dateien manuell umzubenennen (das Leben ist zu kurz). update-rc.dhat diese Lücke gefüllt.
Tomasz Gandor

Antworten:

160

Unter dem Ordner /etc/init.d/finden Sie alle Init-Skripte für verschiedene Boot-Services wie Apache2, Networking usw.

Abhängig davon, in welchem ​​Runlevel der Computer gestartet wird, werden verschiedene Dienste gestartet. Ausgehend von diesem /etc/init.d/Ordner ist jeder "Dienst" mit einem / mehreren / keinen Runlevel-Ordnern verknüpft, die von rc0.dbis benannt sind rc6.d.

Um die Dinge einfach zu halten, gibt es ein Tool zum Entfernen / Hinzufügen dieser Links und somit zum Entfernen oder Hinzufügen von Skripten zum und vom Start.

Um Apache2 zu deaktivieren, geben Sie einfach Folgendes ein:

sudo update-rc.d apache2 disable

Dies deaktiviert Apache2 beim Start, wird jedoch nicht entfernt, sodass es wieder aktiviert werden kann. Gehen Sie wie folgt vor, um die Apache2-Startskripte zu entfernen:

Um Apache2 zu entfernen, geben Sie einfach Folgendes ein:

sudo update-rc.d -f  apache2 remove

Dadurch werden alle Runlevel-Ordner, die mit apache2 verknüpft sind, entfernt.

Tomodachi
quelle
2
chkconfig kann auch helfen - "chkconfig {service_name} off"
MCR
Funktioniert nicht mehr: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, können Sie die Versionen angeben, mit denen Sie gearbeitet haben? Diese Antwort funktioniert für Apache 2 unter Ubuntu 14.04.3
Dale Anderson
1
Wie kann ich den Dienst wiederherstellen?
Eugen Konkov
9
Warnung! Dies wird den Service ENTFERNEN ! Verwenden Sie sudo update-rc.d apache2 disable.
Eduardo Cuomo
194

Sie können es einfach deaktivieren, indem Sie:

sudo update-rc.d apache2 disable

und dann, wenn Sie es wieder aktivieren möchten:

sudo update-rc.d apache2 enable

Je nach Projekt, an dem ich arbeite, ist es praktisch, den Dienst bequem verfügbar zu haben, wenn ich ihn wieder aktivieren möchte.

gsullins
quelle
4
enablegab mir einen Fehler wie runlevel arguments (none) do not match LSB Default-Start values, sudo update-rc.d apache2 defaultsscheint ihn aber erfolgreich wieder aktiviert zu haben.
hier
2
@here sudo update-rc.d apache2 enablespielte wie erwartet für mich
Georgios Pligoropoulos
1
Unter Ubuntu Trusty wird mir mitgeteilt, dass die API disable | enable nicht stabil ist und sich in Zukunft möglicherweise ändert.
Tanner
1
Funktioniert nicht - error: no runlevel symlinks to modify, aborting!. Apache2 läuft jedoch und startet automatisch.
Daniel Kmak
Funktioniert nicht mehr:update-rc.d: error: no runlevel symlinks to modify, aborting!
TomDogg
55

Mit können systemdwir nun systemctlBefehle verwenden, um zu verhindern, dass ein Dienst beim Booten automatisch gestartet wird.

Hier ist ein Beispiel:

sudo systemctl disable apache2

Sie können den Dienst weiterhin starten und stoppen, er wird jedoch beim Start nicht gestartet.

mchid
quelle
2
Linux Mint basiert weiterhin auf Ubuntu 14.04. Ubuntu verwendet ab 15.04 systemd.
twan163
1
@dragonmnl wie twan163 sagte, systemd ist für die neueren versionen (debian jessie oder gleichwertiges +)
mchid
1
Dies hat bei Debian
Anupam
1
Die richtige Antwort für Debian 9+
John
1
update-rc.d: error: no runlevel symlinks to modify, aborting!Erstellen Sie bei einer Begegnung die folgenden fehlenden Simlinks neu. Versuchen Sie dann erneut: /etc/rc0.d/K01 <service> /etc/rc1.d/K01 <service> /etc/rc2.d/S99 <service> /etc/rc3.d/S99 <service> / etc / rc4.d / S99 <service> /etc/rc5.d/S99 <service> /etc/rc6.d/K01 <service>
Amil Waduwawara
5

Ich dachte, ich würde nur die Antworten von @gsullins und @tomodachi für zukünftige Leser ergänzen, die die akzeptierte Antwort verwendet haben.

Wenn Sie bereits verwendet haben:

sudo update-rc.d apache2 remove

Sie können das Argument verwenden defaults, um Apache2 wieder in den Autostart einzufügen

sudo update-rc.d apache2 defaults

Dann können Sie aktivieren / deaktivieren

sudo update-rc.d apache2 disable
sudo update-rc.d apache2 enable
Ben Winding
quelle