Oft müssen Dienste auf unserem Ubuntu-System vorübergehend oder dauerhaft aktiviert oder deaktiviert werden. Manchmal müssen wir möglicherweise bestimmte Dienste beim Hochfahren automatisch starten, z. B. ssh oder Webserver, und manchmal müssen wir Dienste deaktivieren, die wir nicht mehr benötigen und die CPU und RAM in Beschlag nehmen.
In diesem Tutorial sehen wir uns an, wie wir Dienste unter Ubuntu aktivieren und deaktivieren können. Dazu müssen wir zunächst verstehen, dass es 3 Haupt-Init-Systeme für Ubuntu gibt
- Systemd
- Neuling
- SysV
Jedes Init-System hat eine andere Art, Dienste zu starten und zu stoppen. Wir werden uns jeden einzelnen davon ansehen.
So aktivieren und deaktivieren Sie Dienste in Systemd init
Um einen Dienst in systemd zu starten Führen Sie den Befehl wie gezeigt aus:
systemctl start service-name Um beispielsweise den Apache-Webdienst zu starten, führen Sie
aussystemctl start apache2 Führen Sie
aus, um zu überprüfen, ob der Dienst ausgeführt wirdsystemctl status apache2 Ausgabe
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Thu 2018-03-15 17:09:05 UTC; 35s ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/apache2.service
├─2499 /usr/sbin/apache2 -k start
├─2502 /usr/sbin/apache2 -k start
└─2503 /usr/sbin/apache2 -k start
Mar 15 17:09:04 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:09:04 ip-172-31-41-251 apache2[2475]: * Starting Apache httpd web ser
Mar 15 17:09:05 ip-172-31-41-251 apache2[2475]: *
Mar 15 17:09:05 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server. Zum Beenden des Dienstes laufender Dienst
systemctl stop apache2 Um zu bestätigen, dass der Dienst nicht ausgeführt wird, führen Sie
aussystemctl status apache2 Ausgabe
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: inactive (dead) since Thu 2018-03-15 17:19:47 UTC; 12s ago
Docs: man:systemd-sysv-generator(8)
Process: 2822 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS
Process: 2687 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCE
Mar 15 17:10:11 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:10:11 ip-172-31-41-251 apache2[2687]: * Starting Apache httpd web ser
Mar 15 17:10:12 ip-172-31-41-251 apache2[2687]: *
Mar 15 17:10:12 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.
Mar 15 17:19:46 ip-172-31-41-251 systemd[1]: Stopping LSB: Apache2 web server...
Mar 15 17:19:46 ip-172-31-41-251 apache2[2822]: * Stopping Apache httpd web ser
Mar 15 17:19:47 ip-172-31-41-251 apache2[2822]: *
Mar 15 17:19:47 ip-172-31-41-251 systemd[1]: Stopped LSB: Apache2 web server. Um den Apache2-Dienst beim Booten zu aktivieren, führen Sie aus
systemctl enable apache2 Um den Apache2-Dienst beim Booten zu deaktivieren, führen Sie aus
systemctl disable apache2 Um den Dienst neu zu starten
systemctl restart apache2 Um zu überprüfen, ob der Dienst derzeit so konfiguriert ist, dass er beim nächsten Start gestartet wird
systemctl is-enabled apache2 Ausgabe
Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled Um zu prüfen, ob der Dienst aktiv ist
systemctl is-active apache2 Ausgabe
active So entfernen Sie Systemd-Dienste vollständig
Was ist, wenn Sie ein Paket installiert haben und später entscheiden, dass Sie es nicht mehr benötigen? Wie gehst du vor, um es vollständig zu entfernen? Befolgen Sie die nachstehenden Befehle.
Stoppen Sie zuerst den Dienst
systemctl stop service-name Deaktivieren Sie dann den Dienst
systemctl disable service-name Entfernen des Dienstes in systemd
rm /etc/systemd/system/service-name rm /etc/systemd/system/service-name/[related symlinks] Systemd neu laden
systemctl daemon-reload Endlich laufen,
systemctl reset-failed So aktivieren und deaktivieren Sie Dienste in Upstart init
Das Upstart-Init-System wurde kurz vor systemd vorgestellt. Es wurde in Ubuntu 9.10 bis Ubuntu 14.10 verwendet. Es wurde später eingestellt, um den Weg für systemd init in Ubuntu 15.04 und neueren Versionen zu ebnen. Sehen wir uns in diesem Beispiel an, wie wir Dienste in Ubuntu 14.04 starten und stoppen, aktivieren und deaktivieren können.
Upstart verwendet Konfigurationsdateien zur Steuerung von Diensten. Diese Dateien befinden sich im Verzeichnis /etc/init. Diese Dateien bestehen aus einfachen Textabschnitten, die in Strophen organisiert sind, und jede Strophe beschreibt einen Dienst und wie er funktioniert.
Zur Überprüfung, ob ein Dienst ausgeführt wird oder nicht Führen Sie den folgenden Befehl aus
initctl status service-name ODER
service service-name status ODER
status service-name In diesem Beispiel überprüfen wir den Status von cups, einem Linux-Druckserver.
initctl status cups ODER
service cups status ODER
status cups Ausgabe
cups start/running, process 3029 Um den Dienst zu stoppen, führen Sie den folgenden Befehl aus
initctl stop cups ODER
service cups stop ODER
stop cups Ausgabe
cups stop/waiting Um einen Dienst in Upstart init zu aktivieren
In der Datei /etc/init/*.conf finden Sie die Datei „respawn " Direktive, die einen Dienst startet, sollte er unerwartet abstürzen oder das System neu starten. Normalerweise ist sie standardmäßig aktiviert.
Zum Beispiel in der Datei /etc/init/cups.conf unten,
Das erste Argument (3) ist die Anzahl der Neustartversuche und das zweite Argument (12) ist das Zeitintervall zwischen den Wiederholungsversuchen. Wenn es nicht automatisch neu gestartet wird. es wird in einem angehaltenen Zustand gehalten.
Um einen Dienst in Upstart Init zu deaktivieren
Führen Sie den folgenden Befehl aus
echo manual >> /etc/init/service.override
Dadurch wird eine Überschreibungsdatei erstellt, die einen Dienst deaktiviert, ohne die Jobdefinition überhaupt zu ändern.
Für den Cups-Dienst lautet der Befehl
echo manual >> /etc/init/cups.override Bei einem Neustart des Systems befindet sich cups in einem angehaltenen Zustand. Wenn Sie den Dienst wieder aktivieren möchten, müssen Sie die Datei /etc/init/cups.override löschen.
Sysv-rc-conf-Tool
Dies ist eine textbasierte Konsole, die Ihnen einen Überblick über verschiedene Dienste und Runlevel gibt, deren Start geplant ist. Es kann mit dem folgenden Befehl installiert werden
apt-get install sysv-rc-conf Um das Tool auszuführen, führen Sie
aussysv-rc-conf
Jobs-Admin-Tool
Dies ist eine weitere Funktion, mit der Sie Dienste und Prozesse in einer GUI-Umgebung steuern können. Sie können dies installieren, indem Sie ausführen.
apt-get install jobs-admin
So aktivieren und deaktivieren Sie Dienste in SysV init
Um einen Dienst in SysV zu aktivieren, init run
update-rc.d enable service-name Wenn Sie beispielsweise den Apache-Webserver aktivieren möchten, würden Sie
ausführenupdate-rc.d enable apache2 Um einen Dienst zu deaktivieren, führen Sie
ausupdate-rc.d disable service-name Zum Beispiel
update-rc.d disable apache2 Fast alle Linux-Systeme laufen auf Systemd init von Ubuntu, Debian, RHEL und CentOS. Sie werden daher feststellen, dass Sie mehr systemctl-Befehle verwenden werden, um Dienste zu starten, zu stoppen, zu aktivieren und zu deaktivieren. Wir laden Sie ein, die in diesem Artikel gezeigten Befehle auszuprobieren. Danke.
Lesen Sie auch:
- Systemctl-Befehle zum Verwalten des Systemd-Dienstes in Linux