ubuntuusers.de » Wiki » Dienste

Dienste

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Hinweis:

Mit UbuntuKarmic Koala 9.10 hat sich der Systemstart und damit auch die Verwaltung einiger Dienste grundlegend geändert. Weitere Informationen finden sich im Artikel Upstart. Allerdings sind viele der in diesem Artikel genannten Informationen und Beispiele weiterhin gültig, da längst noch nicht alle Dienste umgestellt sind.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Was sind Dienste und Runlevel?

Wiki/Icons/service.png Ein Dienst ist ein Programm, das beim Starten des Rechners ausgeführt wird und im Hintergrund darauf wartet, seine Arbeit zu tun. 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 Mounten von z.B. USB-Sticks sind Dienste.

Linux-Systeme benutzen das klassische SysV-Init-System und kennen verschiedene Zustände (Runlevel). In diesen Runleveln ist definiert, ob und wann ein Dienst automatisch gestartet bzw. gestoppt werden muss. Der Standard-Runlevel unter Debian und Ubuntu ist 2. Dieser ist als "Lokaler Mehrbenutzerbetrieb ohne Netzwerk mit ausschließlich lokalen Ressourcen" definiert, unter Ubuntu wird im Gegensatz dazu hier aber auch der Netzwerkbetrieb konfiguriert.

Das heißt also, dass z.B. ein Apache- oder Samba-Server bei jedem Bootvorgang gestartet wird. Manche Dienste sind allerdings uninteressant oder werden eventuell gar nicht benötigt. In diesem Artikel soll gezeigt werden, was die verschiedenen Dienste machen und wie man diese aufräumt. Nun aber erst einmal die graue Theorie.

Achtung!

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 wirklich unnützen 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.

Start-/Stop-Skript und Runlevel

Jeder Dienst besitzt ein Start-/Stop-Skript im Verzeichnis /etc/init.d. Die Skripte enthalten Befehle, um einen Dienst zu starten bzw. zu beenden. Sie können von Hand aufgerufen werden oder automatisch beim Booten oder Herunterfahren des Systems. Dazu kann das Start-/Stop-Skript inklusive einer Option am Ende ausgeführt werden.

sudo /etc/init.d/<dienstname> [start|stop|restart|...] 

Alternativ kann auch folgende Syntax verwendet werden:

sudo service <dienstname> [start|stop|restart|...] 

Als konkretes Beispiel hier der Befehl, um den Webserver Apache2 zu starten:

sudo /etc/init.d/apache2 start 

Wenn jetzt ein Start-/Stop-Skript automatisch beim Booten ausgeführt werden soll, so wird es einfach nur in den entsprechenden Runlevel verlinkt. Jedem dieser Runlevel ist ein Verzeichnis in /etc zugeordnet. Dies wären

  • /etc/rc0.d - Während das System herunterfährt

  • /etc/rcS.d - Während des Bootens ausführen

  • /etc/rc1.d - Arbeiten als einzelner Benutzer

  • /etc/rc2.d - Mehrbenutzerbetrieb inkl. Netzwerk

  • /etc/rc3.d bis /etc/rc5.d - Nicht genutzt

  • /etc/rc6.d - Während das System neu startet

Jedes Start-/Stop-Skript besitzt zwei Arten von Verknüpfungen ("Links"): die einen beginnen mit "S" (Start) und die anderen mit "K" (Kill). Beim Betreten eines Runlevels werden zunächst die "K"-Links zum Beenden, danach die "S"-Links zum Starten von Diensten ausgeführt. Soll nun etwa ein Dienst nur im Runlevel 2 laufen, so liegt typischerweise in /etc/rc2.d ein "S"-Link, in allen anderen Runlevel-Verzeichnissen dagegen ein "K"-Link.

Die gewünschte Reihenfolge innerhalb der Start- oder Stop-Sequenz wird durch Nummern nach dem "S" bzw. "K" im Linknamen festgelegt. So wird z.B. "S10irgendwas" vor "S20wasanderes" ausgeführt.

Eigenes Start-/Stop-Skript erstellen

Man kann natürlich eigene Start/Stop-Skripte erstellen. Dazu sollte man sich die bereits in /etc/init.d/ liegenden Skripte als Vorbild nehmen oder die offizielle Vorlage /etc/init.d/skeleton als Ausgangsbasis nutzen.

Wem die Start-/Stop-Skripte und die offizielle Vorlage zu komplex sind, der kann sich ein relativ einfaches Start-/Stop-Skript für fast jeden Zweck selbst schreiben. Man benötigt lediglich eine Datei, die auf folgendem Beispiel basiert:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#! /bin/sh
### BEGIN INIT INFO
# Provides:          Was macht das Skript?
# Required-Start:    
# Required-Stop:     
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Kurze Beschreibung
# Description:       Längere Bechreibung
### END INIT INFO
# Author: Name <email@domain.tld>

# Aktionen
case "$1" in
    start)
        /opt/beispiel start
        ;;
    stop)
        /opt/beispiel stop
        ;;
    restart)
        /opt/beispiel restart
        ;;
esac

exit 0

Der Kommentar-Text im Kopfteil der Datei ist dabei sehr wichtig und wird vom Befehl update-rc.d verwendet. Er sollte angepasst, aber nicht gelöscht werden! Mehr zu korrekten LSB-InitSkripten findet man im Debian Wiki {en}. Die Datei speichert man z. B. in /etc/init.d/beispiel und macht die Datei per

sudo chmod 755 /etc/init.d/beispiel 

ausführbar. Anschließend fügt man das Skript mit dem Befehl update-rc.d in die entsprechenden Runlevel ein.

Bearbeiten von Diensten per Hand

Debian und Ubuntu besitzt mit dem Befehl update-rc.d ein mächtiges Werkzeug, um Dienste in den einzelnen Runleveln zu aktivieren bzw. zu deaktivieren. Am Beispiel von pcmciautils wird nun erklärt, wie man einen Dienst aus dem aktuellen Runlevel entfernen und wieder hinzufügen kann.

Das Entfernen ist nicht sonderlich schwer. Man öffnet ein Terminalfenster [3] und gibt den Befehl:

sudo update-rc.d -f pcmciautils remove 

ein. Das Kommando liefert hierbei beispielsweise folgende Ausgabe:

 Removing any system startup links for /etc/init.d/pcmciautils ...
   /etc/rc0.d/K88pcmciautils
   /etc/rc6.d/K88pcmciautils
   /etc/rcS.d/S13pcmciautils

Hier erkennt man die oben beschriebenen Hintergründe. Die Links zum Start-/Stop-Skript von pcmciautils - /etc/init.d/pcmciautils - werden aus den Runleveln gelöscht. Möchte man den Dienste wieder in die dafür vorgesehenen Runlevel einfügen, so macht man das mit dem Befehl

sudo update-rc.d pcmciautils defaults 

Dabei werden die Links wieder angelegt. Nachdem man einen Dienst aus den Runleveln entfernt hat, sollte man ihn abschließend von Hand stoppen

sudo invoke-rc.d pcmciautils stop 

Sonst würde er beim nächsten Herunterfahren des Systems nicht sauber beendet werden und evtl. drohen Datenverluste.

Experten-Info:

Dieser Schritt allein entfernt den Dienst leider nicht für immer. Bei einem Update des entsprechenden Pakets (hier also pcmciautils bzw. pcmcia-cs) merkt die Paketverwaltung, dass diese Links nicht mehr existieren und legt sie wieder an, da das System nun davon ausgeht, dass das Paket zum ersten Mal installiert werden würde. Der Weg, um einen Dienst ein für alle Mal zu deaktivieren, besteht daher darin, die Verknüpfungen nur zu entschärfen.

Verknüpfungen entschärfen

Das vorangegangene Löschen des Dienstes liefert die entscheidenden Informationen, wo die Start- und Stop-Skripte verlinkt werden müssen. Daraufhin legt man selbständig passende Links mit den soeben erworbenen Informationen an.

sudo update-rc.d pcmciautils stop 13 S . stop 88 0 6 . 

Um pcmciautils wieder als Dienst einzufügen, entsprechend wieder

sudo update-rc.d -f pcmciautils remove
sudo update-rc.d pcmciautils start 13 S . stop 88 0 6 . 

eingeben.

GUIs zum Bearbeiten von Diensten

Es gibt verschiedene GUIs zum (De-)Aktivieren von Diensten.

Für die Konsole

rcconf.png

rcconf

Für die Konsole gibt es das Programm rcconf. Der Vorteil ist natürlich, dass man keinen Xserver braucht, um schnell die Dienste bearbeiten zu können. Daher eignet es sich wunderbar für Server. rcconf ist in den normalen Ubuntu Quellen enthalten. Es muss lediglich ein Paket über die Paketverwaltung [1] installiert werden:

  • rcconf (universe [2] )

Wiki/Vorlagen/Installbutton/button.png

sysv-rc-conf.png

sysv-rc-conf

Eine Erweiterung von "rcconf" ist "sysv-rc-conf", mit dem man nicht nur die Dienste des aktuellen Runlevels bearbeiten kann, sondern alle Dienste - also Vorsicht! Das Tool wird durch das Paket

  • sysv-rc-conf (universe [2] )

Wiki/Vorlagen/Installbutton/button.png

bereitgestellt.

gnome-dienste.png

GNOME

Die meisten Dienste lassen sich unter GNOME direkt unter

steuern. Die einzelnen Dienste lassen sich hier leicht de- und aktivieren. Die Einstellungen betreffen auch das Startverhalten. Ist ein Dienst hier deaktiviert, dann wird er auch beim nächsten Start des Systems nicht mit gestartet.

BUM - Boot-Up-Manager

gnome-bum.png Um BUM nutzen zu können, installiert [1] man das Paket

  • bum (universe [2])

Wiki/Vorlagen/Installbutton/button.png

Nach der Installation, kann man BUM unter

  • "System -> Systemverwaltung -> BootUp-Manager" (ab Ubuntu 7.10 Gutsy Gibbon)

finden.

KDE

Hinweis:

Diese Möglichkeit steht ab Kubuntu 8.10 Intrepid Ibex nicht mehr zur Verfügung.

kde-systemdienste.png

Natürlich lassen sich die Dienste auch unter KDE bearbeiten. Das Programm dazu findet sich unter

Hier meldet man sich als Administrator an, um die Dienste zu sehen. Als "Runlevel" wird unter Kubuntu "Multiuser Mode (2)" verwendet, da es sich ja um ein Mehrbenutzer-System handelt.

Dienste können einfach per Mausklick ausgewählt werden, im Fenster rechts findet sich dazu (von oben nach unten) eine kurze Beschreibung des Dienstes, eine Option zum Feststellen, ob der Dienst beim Booten gestartet werden soll, der aktuelle Status sowie Optionen zum "Starten", "Beenden" und "Neustarten". Letzteres beendet einen Dienst und startet diesen anschließend wieder.

Xfce

Xfce-Dienste.png

In der Desktopumgebung Xfce kann man die Dienste unter

  • "Applications -> System -> Dienste"

regeln. Die einzelnen Dienste lassen sich leicht (de-)aktivieren. Die Einstellungen betreffen auch das Startverhalten. Sofern ein Dienst deaktiviert wurde steht er beim nächsten Systemstart nicht zur Verfügung.

Welcher Dienst macht was?

Es folgt nun eine kurze Liste von ausgewählten Diensten, die auf einem System auftauchen können.

Hinweis:

Die Liste erhebt keinen Anspruch auf Vollständigkeit und darf gerne erweitert werden.

Dienst Kurzbeschreibung Details
acpid Advanced Configuration and Power Interface Event Daemon Dieser Dienst ist wichtig, falls man ACPI nutzen möchte, also die Energieverwaltung des PCs. Simple Aufgaben wie das Abschalten des Rechners nach dem Herunterfahren oder die Stromsparmodi moderner CPUs oder Laptops sind damit verbunden.
alsa Advanced Linux Sound Architecture ALSA ist eine Soundarchitektur, so dass alle Soundkarten vom System nur durch einen einzigen Treiber angesprochen werden können.
apmd Energieverwaltung für Rechner mit APM-BIOSStandard für Energiesparmethoden - Vorläufer von ACPI
apport - Sammelt Daten von abgestürzten Prozessen in /var/crash/
atd Erstellung zeitgesteuerter Aufgaben Dieser Dienst verarbeitet bestimmte Aufgaben, die mit dem Befehl at zu einem späteren Zeitpunkt ausgeführt werden sollen. Siehe auch crond and atd {en} .
athcool Stromsparmodus für AMD Athlon/Duron CPUs athcool {en} versetzt AMD Prozessoren der Athlon- und Duron-Baureihen in einen Stromsparmodus. Dadurch erhitzt sich die CPU im Ruhezustand nicht so stark und der CPU Lüfter kann langsamer drehen.
avahi-daemon Netzdetektor Der Avahi-Dienst findet automatisch angeschlossene Computer oder Drucker im Netzwerk.
bluez-utils Bluetooth-Subsystem bluez {en} ist der offizielle Linux Bluetooth-Protokoll-Stack
bootlogd Bootlog Daemon Hiermit kann man Nachrichten speichern, die an die Konsole gesendet werden. Die Nachrichten werden dabei - soweit möglich - in ein Logfile geschrieben.
brltty Braille Zeile in der Konsole Dieser Dienst ermöglicht es Sehbehinderten und Blinden die Konsole über eine Braillezeile zu bedienen.
cron Zeitgesteuerter Aufgaben ausführen Im Gegensatz zu atd beherrscht Cron auch das wiederholte Ausführen von Aufgaben.
cupsys Common Unix Printing System Server Mit CUPS kann man ziemlich leicht Drucker verwalten und einrichten.
dbus Kommunikation zwischen Anwendungen D-Bus stellt eine Schnittstelle her, so dass verschiedene Programme leicht miteinander kommunizieren können.
displayconfig-hwprobe Gewährleisten eines X-Servers Dieses Skript vergleicht die beim Booten vorhandene Grafikkarte mit der, die vorm Herunterfahren eingebaut war. Sollte es einen Unterschied geben, werden möglichst funktionierende Einstellungen in der Datei /etc/X11/xorg.conf vorgenommen.
evms Enterprise Volume Management System evms {en} ist für die Verwaltung, Partitionierung und Einbindung von Laufwerken unter Linux zuständig (siehe auch lvm).
gdm/kdm/xdm/wdm/entrance (GNOME/KDE) Display Manager GDM,KDM,XDM diese Dienste sorgen dafür, dass sich der User nach dem Start des Systems grafisch in das System einloggen kann.
halt Steuerung des Shutdowns Dieser Dienst wird normalerweise nur im Runlevel 0 aufgerufen. Er sorgt dafür, dass der PC korrekt herunterfährt.
hdparm Laufwerks-Einstellungen setzen und anzeigen Hiermit kann man die Einstellungen von Laufwerken, wie zum Beispiel den DMA Modus anzeigen und ändern. Siehe auch DMA.
hotplug Linux Hotplugging hotplug berichtet anderer Software darüber, wenn bestimmte Hardwareereignisse eintreten. Darunter fallen zum Beispiel das Anschließen eines USB-Sticks, so dass dieser automatisch eingebunden wird. Seit Ubuntu 6.06 kommt statt dessen udev zur Anwendung
hplip HP Linux Druck und Imaging System Der Dienst wird für verschiedene HP Geräte benötigt (Drucker/Scanner/Fax)
klogd Kernel Log Daemon Dieser Dienst registriert und speichert alle Nachrichten, die vom Kernel gesendet werden.
laptop-mode Energiesparen für Laptops Das Paket laptop-mode ermöglicht diverse Einstellmöglichkeiten im Batterie- und Netzmodus bei Laptops. Außerdem minimiert es auf Wunsch das Logging im Batterie-Modus.
lvm Logical Volume Manager Der Logical Volume Manager ermöglicht mehrere Partitionen auf verschiedenen Festplatten in einen logischen Verbund zu bringen. Diese erscheinen dem Betriebssystem dann als eine Partition. Man kann jederzeit eine neue Festplatte hinzufügen und den Verbund erweitern. Lohnt sich nur, wenn man mehr als 2 Festplatten im System hat und nur Linux auf der Platte ist. Windows kann damit überhaupt nichts anfangen.
mdadm Verwaltung von MD-Geräten mdadm verwaltet und erstellt Multiple Devices-Geräte, das bedeutet RAID-Systeme in Linux.
mysql** MySQL-Datenbank Diese Dienste werden für die Mysql-Datenbank benoetigt MySQL
nfsd NFS-Server NFS-Server-Dienst zur Freigabe von Dateien in Linux Netzwerken.
ntp-server Network Time Protocol Server Dieser Dienst stellt die Uhrzeit mittels NTP im Netzwerk zur Verfügung.
ntpdate Setzt Zeit und Datum mittels NTP Hiermit werden Zeit und Datum im Netzwerk besorgt und mit dem Rechner abgeglichen. Bei Computern ohne Router bzw. Standleitung meldet dieser Dienst beim PC-Start immer einen Fehler. Es ist daher manchmal empfehlenswert diesen Dienst abzuschalten.
postfix Email-Agent Postfix ist eine Alternative zu Sendmail mit ähnlicher Bedienung. nur schneller, leichter und sicherer.
powernowd CPU-Takt und Voltzahl steuern Mit powernowd lassen sich der CPU-Takt und die Voltzahl moderner CPUs und Laptops steuern, so dass diese stromsparender und kühler laufen.
ppp PPP Startet und Stoppt PPP-Verbindungen. Im Skript selber wird diese Methode allerdings als veraltet genannt und auf /etc/network/interfaces hingewiesen.
reboot Steuerung des Neustarts Dieser Dienst wird normalerweise nur im Runlevel 6 aufgerufen. Er sorgt dafür, dass der PC neu startet.
sysklogd System Logging Utilities Dies stellt die Programme syslogd und klogd bereit, welche Systemnachrichten und Kernelnachrichten protokollieren.
udev Linux Hotplugging udev berichtet anderer Software darüber, wenn bestimmte Hardwareereignisse eintreten. Darunter fallen zum Beispiel das Anschließen eines USB-Sticks, so dass dieser automatisch eingebunden wird. Bei Ubuntuversionen vor 6.06 kommt statt dessen hotplug zur Anwendung
umountfs Dateisysteme aushängen Dies wird beim Neustart oder Herunterfahren des Systems aufgerufen, um die aktuellen Dateisysteme auszuhängen.
urandom Zufallsgenerator Hiermit wird das Gerät /dev/random bzw. /dev/urandom bereit gestellt, welches für die Zufallszahlensteuerung zuständig ist.
usplash Bootsplash Stellt sicher, dass nach dem Booten der Splashscreen durch eine Konsole ersetzt wird.
vbesave Video-BIOS Hier werden die Einstellungen, die über das Programm vbetool vorgenommen wurden, gespeichert.


Diese Revision wurde am 29. Mai 2010 um 13:08 Uhr von Heinrich Schwietering erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: System

Passwort vergessen?