Dienste

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Init-Systeme
  2. Starten und Beenden von Diensten
    1. systemctl
  3. Auffinden und Ablegen von Diensten
  4. Deaktivieren von Diensten
  5. Eigenes Start-/Stopp-Skript erstellen
  6. GUIs zum Bearbeiten von Diensten
  7. Links

Wiki/Icons/service.png Ein Dienst ist ein Programm, das beim Start des Rechners automatisch ausgeführt wird und im Hintergrund darauf wartet, seine Aufgabe zu erledigen. Ein Dienst besitzt meist keine grafische Oberfläche und arbeitet ohne Interaktion des Benutzers. Die bekanntesten Dienste sind sicherlich Web-, Mail- oder Datenbank-Server. Aber auch die Hardwareerkennung oder das automatische Einbinden (Mounten) von z.B. USB-Sticks wird durch Dienste erledigt. Prinzipiell gibt es also zwei Arten von Diensten: interne für beim Systemstart relevante bzw. hardwarenahe Aufgaben und vom Benutzer nachinstallierte Dienste, zu denen in der Regel alle Serverdienste gehören.

Im Computer-Jargon werden Dienste traditionell auch als Daemon bezeichnet. Der Buchstabe d findet sich daher häufig auch als letzter Buchstabe in der Programmbezeichnung wieder, so z.B. bei der Serverkomponente sshd von SSH.

Init-Systeme

Um das geordnete Starten und Beenden der Dienste kümmert sich ein Init-System. Dies ist normalerweise der erste gestartete Prozess und hat damit die Prozess-ID 1.

Bei der Diagnose, welches Init-System aktuell zum Einsatz kommt, kann der Befehl:

cat /proc/1/comm 

weiterhelfen. Die Antwort lautet entweder systemd oder init, wobei letzteres bei Ubuntu für die Kombination aus Upstart und SysVinit steht.

Starten und Beenden von Diensten

systemctl

Wird als Init-System systemd verwendet, kann man den Befehl systemctl verwenden.

sudo systemctl [BEFEHL] [UNIT[.service]] 

Hierbei entspricht UNIT dem bisher verwendeten DIENSTNAME bei Serverdiensten (die zusätzlich durch die Endung .service gekennzeichnet sind).

Aus Kompatibilitätsgründen funktioniert der folgende Befehl auch (noch) unter systemd, das oben erwähnt systemctl ist aber mächtiger.

sudo service DIENSTNAME [OPTION] 

start, stop, restart, status usw. sind die möglichen Optionen bzw. Aktionen. Sind diese Aktionen unbekannt, lässt man sie einfach weg. Dann werden die vorhandenen Möglichkeiten auf der Kommandozeile angezeigt.

Auffinden und Ablegen von Diensten

Die Dateien der systemd Units findet man in den folgenden Verzeichnissen:

Im Idealfall verrät bereits der Name des Skripts, welcher Dienst dahintersteckt. Ansonsten muss man einen Blick in die jeweilige Datei werfen (entweder mit einem Editor oder dem Befehl "less /PFAD/ZUR/DATEI").

Deaktivieren von Diensten

Umsteiger von anderen Betriebssystemen meinen oft, Dienste deaktivieren zu müssen, um das System zu "optimieren". Ubuntu installiert ein relativ schlankes System, auf dem keine unnötigen Dienste laufen. Stellt man unüberlegt wichtige Dienste ab, so kann dies dazu führen, dass das System unbenutzbar wird. Daher sollte man sich vor dem Deaktivieren genau informieren, welche Auswirkungen das haben könnte und ob dies wirklich notwendig ist.

Das konkrete Verfahren ist wiederum davon abhängig, welches Init-System zum Einsatz kommt und ist in den jeweiligen Artikeln nachzuschlagen.

Eigenes Start-/Stopp-Skript erstellen

Mehr Informationen zum Erstellen eigener Start-/Stopp-Skripte unter systemd (für alle Ubuntu-Systeme seit Ubuntu 15.04) findet man im Artikel systemd/Units (Abschnitt „Eigene-Units-anlegen“).

GUIs zum Bearbeiten von Diensten

Für systemd gibt es nur für Ubuntu 16.04 eine grafische Oberfläche, für alle anderen Ubuntu-Versionen erfolgt die Konfiguration über Dateien, die in einem Editor bearbeitet werden.