Dienste unter Linux

Übersicht über vorhandene Dienste

service --status-all

Hier werden alle Dienste aufgelistet. + = aktiv / – = inaktiv

Grafische Werkzeuge

Im Paket systemd-ui (universe) ist das Programm systemadm enthalten, welches in einer grafischen Oberfläche die gestarteten systemd-Units auflistet. Über die Oberfläche ist aber kein Starten, Stoppen oder Modifizieren der Units möglich.

Linux Mint: Systemd-gui im „Appstore“

Aufruf über das Mint-Menü > Systemverwaltung > systemadm

Starten und Beenden von Diensten

Möchte man Dienste von Hand beenden, (neu-)starten oder den Status abfragen, so gibt es hierfür den Befehl service. Dieser erleichtert bis einschließlich Ubuntu 14.10 den Umgang bei Hybridsystemen mit Upstart und SysVinit, da der Befehl beide Systeme nach einem Dienst mit dem entsprechenden Namen durchsucht und den Befehl automatisch an das richtige System weiterleitet. Schematisch erfolgt der Aufruf nach folgendem Muster:

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.

Seit Ubuntu 15.04 und dem Einsatz von systemd gilt eine andere Syntax:

sudo systemctl [BEFEHL] [UNIT.service]

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

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

  • systemd: /etc/systemd/system/ (benutzerdefinierte) oder /lib/systemd/system/ (systemeigene)
  • Upstart: .conf-Dateien im Ordner /etc/init/
  • SysVinit: alle Dateien im Ordner /etc/init.d/

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 „cat /PFAD/ZUR/DATEI | less„).

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.

systemd

Die wichtigsten Befehle führen Sie mit root-Privilegien oder mittels sudo über das Tool systemctl in der Kommandozeile aus. Eine Liste aller aktuell laufenden Dienste erhalten Sie nach

systemctl -t service

angezeigt. Die Liste können Sie mit den Pfeiltasten abrollen und mit der Q-Taste schließen. Alle Dienste, auch jene, die gerade inaktiv sind, zeigt der zusätzliche angehängte Parameter -a. Der Status eines Diensts lässt sich auch direkt mit dem Befehl

systemctl status [Dienst].service

abfragen. Zum Beenden und Starten eines Dienstes geben Sie

systemctl stop [Dienst].service

beziehungsweise

systemctl start [Dienst].service

ein, während der Parameter restart einen Dienst neu startet. Zum permanenten Deaktivieren dient

systemctl disable [Dienst].service

und um einen Dienst wieder zum Systemstart einzuschalten, geben Sie systemctl enable [Dienst].service

ein. Auch die Runlevel-Konfiguration ist jetzt die Sache von Systemd, die hier „targets“ heißen. In einen Runlevel ohne grafische Oberfläche wechseln Sie beispielsweise nicht mehr mit telinit, sondern mit dem Befehl

systemctl isolate multi-user.target