Systemdienste per GUI und Terminal verwalten

Aus LinuxUser 10/2019

Systemdienste per GUI und Terminal verwalten

© Andriy Popov, 123RF

Stets zu Diensten

Im YaST-Modul zur Diensteverwaltung aktivieren, starten und stoppen Sie bequem Hintergrunddienste, lesen Fehlermeldungen aus oder schätzen den Ressourcenverbrauch der Dienste ein.

Unter dem Begriff Programm verstehen die meisten Benutzer eine Anwendung mit Programmfenster, wie etwa Firefox oder LibreOffice. Doch auf jedem Rechner laufen im Hintergrund auch Programme ohne sichtbares Fenster. Zu diesen Systemdiensten zählen etwa die Firewall [1] oder der SSH-Server, mit dessen Hilfe Sie sich aus der Ferne auf einem Rechner im Heimnetz einloggen. Aber auch jedes Mal, wenn Sie eine Webseite aufrufen oder eine Datei per FTP herunterladen, kümmern sich auf dem Rechner, der die Daten liefert, Server-Dienste darum.

Wichtiger als Web- oder FTP-Server sind auf Heim-Computern die Dienste, die das eigene System betreffen: So stößt der Cron-Dienst (benannt nach Chronos, dem griechischen Gott der Zeit) regelmäßig Verwaltungsaufgaben an, wie das Trimmen der Log-Dateien, damit sie nicht irgendwann die ganze Platte füllen, oder das Aktualisieren der Suchdatenbank des Werkzeugs Locate [2].

Auch beim Login-Manager (Abbildung 2) handelt es sich funktional gesehen um einen Hintergrunddienst, obwohl er im Vordergrund sichtbar wird. Mit systemctl status sddm erfahren Sie bei Bedarf einiges über seinen Zustand. Die Tabelle “Wichtige Linux-Dienste” führt wichtige Systemdienste auf und beschreibt deren Aufgabe, einige weitere erläutert eine OpenSuse-Wiki-Seite [3].

Name

Funktion

weitere Infos

Cron

zeitgesteuertes Starten von Prozessen

https://en.opensuse.org/SDB:Cron

CUPS

lokal und im Netz drucken

https://en.opensuse.org/SDB:CUPS_in_a_Nutshell

Display-Manager

Login-Screen oder Autostart der Desktop-Umgebung

https://en.opensuse.org/Category:Display_Manager

NetworkManager

(W)LAN automatisch konfigurieren/anmelden

https://en.opensuse.org/NetworkManager

Firewalld

Firewall

https://en.opensuse.org/Firewalld

Sshd

Remote-Login

https://en.opensuse.org/Category:OpenSSH

Dbus

Schnittstelle für Systemd und weitere Programme

https://www.freedesktop.org/wiki/Software/dbus/

Rc-local

führt beim Systemstart /etc/rc.local aus

https://www.freedesktop.org/software/systemd/man/systemd-rc-local-generator.html

Seit Version 12.1 setzt OpenSuse zum Starten und Verwalten dieser Dienste auf Systemd [4], wie praktisch alle anderen Distributionen. Diese Komponente stößt nach ihrem Start direkt nach dem Laden des Kernels direkt oder indirekt alles Weitere an, was auf dem System abläuft, ohne dass Sie es selbst aus dem Startmenü heraus starten. Dass es für eine derartig zentrale Systemkomponente ein YaST-Modul gibt, versteht sich von selbst: Dienste-Verwaltung zeigt gleich nach dem Öffnen eine Liste aller auf dem System installierten Hintergrunddienste (Abbildung 1).

Abbildung 1: Das YaST-Modul <span class="ui-element">Dienste-Verwaltung</span> zeigt eine lange Liste aller verf&uuml;gbaren Systemdienste, startet oder beendet sie auf Mausklick oder konfiguriert den automatischen Start beim Booten.

Abbildung 1: Das YaST-Modul Dienste-Verwaltung zeigt eine lange Liste aller verfügbaren Systemdienste, startet oder beendet sie auf Mausklick oder konfiguriert den automatischen Start beim Booten.

In der ersten Spalte steht der Kurzname des Diensts, in der letzten eine etwas ausführlichere Beschreibung. Die Spalte Start zeigt, ob der Dienst nur manuell aktiv wird, zum Beispiel durch einen Klick auf Start hier im YaST-Modul, oder automatisch beim Systemstart. Beim Betrachten der Spalte Zustand müssen Sie nicht über die vielen “Toten” auf dem System erschrecken: Tot als Zustand für einen Systemdienst ist nur eine etwas unglückliche Übersetzung des englischen “dead”, das hier eher abgeschaltet bedeutet. Neben Tot gibt es noch die Zustände Aktiv (läuft) und Aktiv (beendet) sowie einige Spezialfälle (siehe Tabelle “Dienstezustände”).

Spalte Zustand in YaST

Bedeutung

Aktiv (läuft)

Dienst wartet auf Aufträge

Aktiv (beendet)

Dienst hat seine Aufgabe erfüllt und läuft nicht mehr

Fehlgeschlagen (Fehlgeschlagen)

Dienst ließ sich nicht starten

Inactive (Tot)

Dienst weder manuell noch automatisch gestartet

Ablaufplaner

Die Aufgabe des YaST-Moduls Dienste-Verwaltung besteht darin, Dienste zu starten oder zu stoppen und deren Start-Modus von manuell zu beim Systemstart oder umgekehrt zu verändern. Dazu dienen die zwei Schalter links unter der Diensteliste: Die Beschriftung des linken wechselt zwischen Stop und Start, je nachdem, ob der gewählte Dienst gerade läuft. Im Start-Modus rechts daneben wählen Sie zwischen Manuell und Beim Systemstart, bei manchen Diensten auch noch Auf Abruf.

So einfach das von der Hand geht: Es nützt herzlich wenig, Dienste per Mausklick aktivieren oder starten zu können, wenn man deren Aufgabe nicht kennt. Die Beschreibung der Dienste im YaST-Modul hilft da oft nicht weiter, da sie manchmal eigentlich nur den Dienstnamen wiederholt. Immerhin wissen Sie nun, was zu tun ist, wenn Ihnen die OpenSuse-Dokumentation [5] oder ein Forum im Internet nahelegt, einen gewissen Dienst zu starten oder zu aktivieren. Außerdem heißen die Dienste auch in anderen Distributionen meist so wie in OpenSuse. Eine Internet-Suche danach liefert also in aller Regel schnell weitere Informationen.

Auch innerhalb des YaST-Moduls gibt es weitere Informationsquellen: Der Schalter Details öffnet den Dialog aus Abbildung 2. Dessen Inhalt wirkt vielleicht auf den ersten Blick kryptisch, lässt sich aber recht einfach aufschlüsseln: In der ersten Zeile sehen Sie den Namen der Dienstekonfigurationsdatei (“Unit-Datei”) und eine Beschreibung des Diensts. In der nächsten Zeile Loaded finden Sie den Pfad der Konfigurationsdatei, die Systemd geladen hat.

Abbildung 2: Der Schalter <span class="ui-element">Details</span> liefert wichtige Informationen, wie den Namen der Dienstekonfigurationsdatei, die Prozess-ID des Diensts sowie dessen zuletzt ausgegebenen Meldungen.

Abbildung 2: Der Schalter Details liefert wichtige Informationen, wie den Namen der Dienstekonfigurationsdatei, die Prozess-ID des Diensts sowie dessen zuletzt ausgegebenen Meldungen.

Noch innerhalb der runden Klammer folgt nach einen Semikolon das Schlüsselwort enabled. Das bedeutet, dass der Dienst automatisch startet. Die folgende Bezeichnung vendor preset (Hersteller-Voreinstellung) steht für die Autostart-Voreinstellung direkt nach der Installation des Software-Pakets. Der SSH-Dienst läuft also zunächst nur nach manuellem Start. Die Voreinstellung lässt sich bei diesem Dienst gleich im OpenSuse-Installer überschreiben, später dann auch im YaST-Modul.

Besser beschrieben

Suchen Sie im YaST-Modul Software nach dem Namen der Unit-Datei, so erfahren Sie, welches Software-Paket den Dienst zur Verfügung stellt (Abbildung 3). Wählen Sie dabei im Reiter Suchen der YaST-Software-Verwaltung die Option Dateiliste. Die Beschreibungen der Pakete sind dort in aller Regel aussagekräftiger als die im YaST-Modul Dienste-Verwaltung.

Abbildung 3: Welche Funktion steckt hinter dem Dienst <code>plymouth-kexec</code>? Die Suche nach dessen Konfigurationsdatei in der Software-Verwaltung findet das Paket <span class="ui-element">plymouth</span>, das gem&auml;&szlig; Paketbeschreibung eine "grafische Animation w&auml;hrend des Bootvorgangs" zur Verf&uuml;gung stellt.

Abbildung 3: Welche Funktion steckt hinter dem Dienst plymouth-kexec? Die Suche nach dessen Konfigurationsdatei in der Software-Verwaltung findet das Paket plymouth, das gemäß Paketbeschreibung eine “grafische Animation während des Bootvorgangs” zur Verfügung stellt.

Sogar Daten zur CPU-Last und RAM-Belegung, die der Dienst verursacht, lassen sich mit den Informationen im Dialog Details erschließen: Die mit Main PID beginnende Zeile liefert die PID des Hauptprozesses des Diensts, also dessen Prozesskennung. Jedem laufenden Prozess, ob normale Desktop-Anwendung oder Systemdienst, ist unter Linux eine solche eindeutige Nummer zugewiesen.

Starten Sie unter KDE mit [Strg]+[Esc] den KDE-Systemmonitor und geben dort in das Schnellsuche-Feld über der Prozessliste die PID eines Dienste ein, dann bleibt in der Liste nur noch der Hauptprozess dieses Diensts übrig. Aus den Spalten CPU und Speicher lesen Sie dessen Ressourcenverbrauch ab (Abbildung 4).

Abbildung 4: Wie viel RAM belegt eigentlich der Firewall-Dienst? Mithilfe der PID im <span class="ui-element">Details</span>-Dialog und dem KDE-Programm <span class="ui-element">Systemaktivit&auml;t</span> finden Sie es heraus.

Abbildung 4: Wie viel RAM belegt eigentlich der Firewall-Dienst? Mithilfe der PID im Details-Dialog und dem KDE-Programm Systemaktivität finden Sie es heraus.

Allerdings gibt es Dienste, bei denen der Hauptprozess nur dazu dient, Kindprozesse zu starten, die dann die eigentliche Arbeit erledigen. Der Ressourcenverbrauch des Hauptprozesses ist dagegen nicht der Rede wert. Hier hilft es, im Suchfeld die PID durch den Namen des gefundenen Prozesses zu ersetzen (gleichnamige Spalte im Systemmonitor). Abbildung 5 zeigt als Beispiel den Webserver-Prozess httpd-prefork: Ein als Root gestarteter Prozess dient nur dazu, die eigentlichen Arbeitsprozesse als Benutzer wwwrun zu starten, die dann die eigentliche Speicher- und CPU-Last erzeugen.

Abbildung 5: Beim Webserver Apache hilft es wenig, herauszufinden, wie viel Speicher und CPU-Leistung der Hauptprozess verbraucht: Die eigentliche Leistung erbringen vom Hauptprozess gestartete Kindprozesse.

Abbildung 5: Beim Webserver Apache hilft es wenig, herauszufinden, wie viel Speicher und CPU-Leistung der Hauptprozess verbraucht: Die eigentliche Leistung erbringen vom Hauptprozess gestartete Kindprozesse.

Wichtig ist auch noch der Schalter Zeige Log: Er liefert die Status- und gegebenenfalls Fehlermeldungen des in der Liste aktiven Diensts. Liegen Fehlermeldungen vor, klicken Sie zum Ausblenden unkritischer Statusmeldungen auf Filter ändern und wählen im Ausklappmenü Mit mindestens dieser Priorität die Option err. Nun sehen Sie nur noch solche Meldungen, die auf Probleme hindeuten. Wie so oft liefert eine Internet-Suche hilfreiche Informationen.

Tippen statt klicken

OpenSuse sieht es als sein Alleinstellungsmerkmal, für möglichst viele Aspekte der Systemadministration YaST-Module anzubieten. Allerdings kapselt das YaST-Modul Dienste-Verwaltung lediglich ein paar recht simple Kommandozeilenbefehle. Es ist nicht unbedingt schwieriger, sie selbst auf der Konsole zu tippen. Wie praktisch alle Systemverwaltungsaufgaben müssen Sie die im Folgenden beschriebenen Befehle grundsätzlich als Root ausführen.

Eine Liste aller verfügbaren Dienste, ähnlich wie nach dem Start des YaST-Moduls, erhalten Sie nach Eingabe von systemctl list-unit-files (Abbildung 6). Allerdings gibt es dort neben den rot und grün als enabled und disabled bezeichneten Diensten solche vom Typ static und einigen weiteren Spielarten. Das static signalisiert, dass der Dienst nur für den manuellen Start konzipiert wurde und sich nicht für den automatischen Start aktivieren lässt. Die restlichen Typen interessieren in der Regel nur Experten, weswegen YaST diese Dienste verbirgt. Außerdem tragen die Kurznamen auf der Konsole eine Dateiendung (in der Regel .service), während das YaST-Modul diesen Anhang ausblendet.

Abbildung 6: Mit dem Kommando <code>systemctl list-unit-files</code> erhalten Sie eine &Uuml;bersicht &uuml;ber die verf&uuml;gbaren Dienste.

Abbildung 6: Mit dem Kommando systemctl list-unit-files erhalten Sie eine Übersicht über die verfügbaren Dienste.

Erstaunlicherweise gibt es in YaST keine einfache Möglichkeit, alle Dienste anzuzeigen, deren Start fehlgeschlagen ist. Auf der Kommandozeile liefert systemctl --failed diese für die Problemdiagnose wichtige Information. Gibt der Aufruf lediglich 0 loaded units listed zurück, dann liegen auf dem System keine havarierten Dienste vor; ansonsten zeigt Systemctl eine Liste der nicht funktionierenden Dienste.

Geben Sie zur Fehlersuche zunächst systemctl status Name ein, wobei Sie den Namen an die Ausgabe der vorherigen Auflistung anpassen. Sie erhalten dann dieselbe Ausgabe wie bei einem Klick auf Details im YaST-Modul. Per Tabulator vervollständigen Sie angefangene Dienstnamen beim Tippen auf der Kommandozeile.

Für das Aufspüren des Fehlers sind aber nicht die ersten, bereits erläuterten Zeilen relevant, sondern der untere Textblock: Dabei handelt es sich um die letzten Meldungen, die der Dienst ausgab. Daraus lässt sich entweder direkt die Ursache auslesen (Abbildung 7) oder Sie recherchieren im Internet danach.

Abbildung 7: Fehlermeldungen eines Diensts erscheinen in der Ausgabe von <code>systemctl status</code> rot.

Abbildung 7: Fehlermeldungen eines Diensts erscheinen in der Ausgabe von systemctl status rot.

Vollständig dokumentiert

Genügen Ihnen die wenigen Meldungszeilen nicht, die systemctl status anzeigt, und möchten Sie alle Meldungen sehen, die ein bestimmter Dienst seit dem Booten des Rechners ausgegeben hat, dann hilft der Befehl journalctl -b -u Name weiter. Genau wie ein Klick auf Zeige Log führt er alle Meldungen des Diensts seit dem Start des Systems auf. Lassen Sie den Parameter -b weg, dann erscheinen sogar Meldungen früherer Sitzungen. Reicht das Konsolenfenster nicht aus, um den Text anzuzeigen, scrollen Sie mit den Pfeiltasten beziehungsweise [Bild-auf]+ und [Bild-ab] in der Ausgabe.

Daneben lassen sich Dienste auch auf der Konsole starten und beenden, auch den Autostart-Modus können Sie wie im YaST-Modul setzen. systemctl start Name startet einen Dienst. Tippen Sie den Namen per Hand, dürfen Sie die Endung .service weglassen: Beim Vervollständigen per [Tab] erscheint diese Endung ohnehin von selbst. systemctl stop beendet einen Dienst, systemctl enable schaltet den automatischen Start frei.

Diese OpenSuse-Tipps beschränken sich darauf, den Funktionsumfang des YaST-Moduls Dienste-Verwaltung auf der Konsole vorzustellen. Gerade der Befehl Journalctl [6] zum Betrachten der Logs kennt jedoch sehr viele weitere Möglichkeiten [7], die helfen, den Gründen für Fehlfunktionen Ihres Rechners auf die Spur zu kommen. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2019 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben