Dienste

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Init-Systeme
  2. Starten und Beenden von Diensten
  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

service

Möchte man Dienste von Hand beenden, (neu-)starten oder den Status abfragen, so kann man dafür - unabhängig vom verwendetetn Init-System - den Befehl service nutzen.

sudo service DIENSTNAME [OPTION] 

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

systemctl

Wird als Init-System systemd verwendet, kann man alternativ 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).

Auffinden und Ablegen von Diensten

Da je nach Ubuntu-Version unter Umständen alle drei Init-Systeme parallel genutzt werden, findet man Start-/Stopp-Skripte an folgenden Orten:

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.

Für den Einsatz unter Ubuntu 14.04 findet man die entsprechenden Informationen in SysVinit bzw. Upstart .

GUIs zum Bearbeiten von Diensten

Es gab in der Vergangenheit verschiedene grafische Oberflächen (GUIs) zum (De-)Aktivieren von Diensten. Diese Programme beschränken sich allerdings alle auf Systeme mit SysVinit oder Dienste, deren Start-/Stopp-Skripte für dieses System ausgelegt sind. Für Upstart existierte nie etwas Vergleichbares. Erst systemd bietet wieder eine grafische Oberfläche zur Verwaltung von Diensten.