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