Dienste auf Debian konfigurieren und verwalten

Unter Debian ist ein Dienst (oder Daemon / Daemon) ein Initialisierungsskript vom Typ „System V“, mit dem Sie einen Server ( openSSH-Server, FTP-Server oder anderer NTP-Server usw.) oder ganz einfach ein Programm verwalten können, das dies tut Aufgaben ausführen.
Diese Skripte befinden sich im Ordner /etc/init.d/ .
Da Debian-Dienste resident sind, müssen Sie sie starten, stoppen und konfigurieren sehen. Kurz gesagt, verwalten Sie sie.

Contents

Verwaltung von Debian-Diensten von Zeit zu Zeit

Um einen Dienst von Zeit zu Zeit zu verwalten, verwenden wir den Befehl service nom_du_service commande .
Dieser Befehl benötigt mehrere Parameter, je nachdem, was Sie mit dem Dienst tun möchten.
Im Allgemeinen können Sie die folgenden Befehle verwenden:

  • starten: um es zu starten
  • aufhören: damit aufhören
  • Neustart: um es neu zu starten oder zu starten, wenn es gestoppt ist
  • reload: um die Konfiguration neu zu laden, ohne sie neu zu starten (also ohne die aktiven Verbindungen zu trennen)
  • status: Um den Status des Dienstes zu erfahren. Gestartet oder gestoppt.

Beispiele:

 root @ debian: ~ # service nfs-common start [ok] Allgemeine NFS-Dienstprogramme starten: statd idmapd. root @ debian: ~ # nfs-common stop service [ok] Beenden der allgemeinen NFS-Dienstprogramme: idmapd statd. root @ debian: ~ # service nfs-common restart [ok] Beenden der allgemeinen NFS-Dienstprogramme: idmapd statd. [ok] Allgemeine NFS-Dienstprogramme starten: statd idmapd. root @ debian: ~ # service nfs-common reload [ok] Usage: nfs-common {start | stop | status | restart}. root @ debian: ~ # service nfs-common status alle Dämonen laufen 

Wir dürfen nicht vergessen, dass diese Aufträge ad hoc sind.
Beim nächsten Neustart des Servers stellen die Dienste den standardmäßig definierten Status wieder her.
Wenn Sie das Gesamtverhalten des Dienstes ändern möchten, müssen Sie zur Konfiguration gehen.

Debian-Dienste konfigurieren

Debian-Dienste werden gemäß ihrer „Runlevel“-Zuordnungsstufen ausgeführt: 0, 1, 2, 3, 4, 5, 6.

  • Stufe 0: Computer herunterfahren.
  • Level 1: „Single-User“-Modus, enthält nur Basisdienste. Es ist ein bisschen wie der „abgesicherte“ Modus von Windows für Wartungsarbeiten.
  • Level 2: das Standard-Level, das… alles beinhaltet. Netzwerkdienste, Server, grafische Oberfläche, etc …
  • Level 6: identisch mit Level 0, außer dass es bei einem Neustart und keinem vollständigen Herunterfahren verwendet wird
  • Level 3, 4 und 5: identisch mit Level 2. Sind anwesend, um dem Administrator bei Bedarf mehr Feingefühl zu geben.

Ein Service besteht mindestens aus:

  • einer im Ordner aufgeführten Skriptdatei /etc/init.d
  • ein symbolischer Startlink wie „S10service“, platziert in einem der 6 Verzeichnisse /etc/rc?.d/. Allgemein: 2, 3, 4, 5
  • ein symbolischer Link zum Stoppen des Dienstes wie „K20service“, platziert in einem der 6 Verzeichnisse /etc/rc?.d/. Allgemein: 0, 1, 6

Bei Startskripten setzt das System ein „S“ vor den Skriptnamen.
Bei Kill-Skripten setzt das System ein „K“ vor den Skriptnamen.

Nach jedem Buchstaben „S“ oder „K“ steht eine Zahl: 10, 20, etc. Diese Zahl gibt die Ausführungsreihenfolge des Dienstes innerhalb des Runlevels an.
Dies hilft, Prioritäten zu verwalten. 20 wird vor 30 ausgeführt, was vor 40 ausgeführt wird, usw … Wenn wir also einen Dienst nach dem anderen starten möchten, der eine Priorität von 20 hat, setzen wir zum Beispiel 30.

Beachten Sie, dass, wenn im gleichen Runlevel „K“ und „S“ vorhanden sind, das „K“ vor dem „S“ verarbeitet wird.

Debian-Dienste mit rcconf konfigurieren

rcconf können Sie einfach auswählen, welche Dienste beim Start des Computers gestartet werden oder nicht.
Wenn Sie einen Dienst beim Start deaktivieren, verhindert nichts, dass er auf einmal gestartet wird, service wenn der Computer eingeschaltet ist. Aber wie oben erklärt, wird der Dienst beim nächsten Neustart nicht gestartet.

Wenn es nicht installiert ist, installieren wir rcconf:

 aptitude install rcconf 

Wir führen rcconf aus:

 rcconf 

In der sich öffnenden Schnittstelle aktivieren / deaktivieren wir die Dienste. Und wir nehmen auf.

Der Nachteil ist, rcconf dass Sie die Runlevels nicht verwalten können. Das heißt, definieren, wann das Skript gestartet und gestoppt wird. Wir aktivieren / deaktivieren und das war’s.
Um diese Finessen zu verwalten, gibt es das Programm sysv-rc-conf.

Konfigurieren Sie Debian-Dienste mit sysv-rc-conf

sysv-rc-conf macht dasselbe wie rcconf , kann aber auch Start- und Stopp-Runlevel von 0 bis 6 bestimmen. Es kann auch einen Dienst wie der Befehl im laufenden Betrieb stoppen/starten service .

Installation:

 aptitude install sysv-rc-conf 

Und wir laufen:

 sysv-rc-conf 

In der Oberfläche können Sie jeden Runlevel jedes Dienstes aktivieren / deaktivieren.

sysv-rc-conf ermöglicht Ihnen auch, alle Dienste und deren Runlevel aufzulisten. So haben Sie schnell einen Überblick:

 sysv-rc-conf --list 

Zu diesem Zeitpunkt wäre es fast perfekt… außer… dass… sysv-rc-conf weder die Prioritäten zwischen den verschiedenen Diensten desselben Runlevels noch die Abhängigkeiten verwaltet.
Wenn wir also noch weiter gehen wollen… Sie müssen es von Hand machen, auf die altmodische Art, mit  update-rc.d !

Verwalten von Debian-Diensten mit update-rc.d- und LSB-Skript-Headern

Wie immer haben wir die meisten Möglichkeiten, wenn wir alles von Hand machen. Vor allem die, die alles kaputt machen ? Und dafür benutzen wir den Befehl update-rc.d .
Es ermöglicht Ihnen, einen Dienst hinzuzufügen, zu ändern oder zu löschen. Definieren Sie Prioritäten und Abhängigkeiten.

LSB-Skript-Header?

Seit Debian 6.0 „Squeeze“ gibt es einen neuen Weg, Dienste und Abhängigkeiten zu verwalten.
Die Konfiguration erfolgt direkt in jedem Service-Skript und nicht mehr unbedingt durch Übergabe von Parametern an den Befehl update-rc.d

Hier zum Beispiel die des Mailservers Exim:

 ### INIT-INFO BEGINNEN # Bietet: exim4 # Erforderlicher-Start: $ remote_fs $ syslog $ named $ network $ time # Erforderlicher Stopp: $ remote_fs $ syslog $ mit dem Namen $ network # Sollte-Start: postgresql mysql clamav-daemon greylist spamassassin # Sollte-Stopp: postgresql mysql clamav-daemon Greylist Spamassassin # Standard-Start: 2 3 4 5 # Standard-Stopp: 0 1 6 # Kurzbeschreibung: exim Mail Transport Agent # Beschreibung: exim ist ein Mail Transport Agent ### ENDE INIT INFO 

In groben Zügen sehen wir:

  • Erforderlicher Start: die Dienste, die VOR dem Start von Exim gestartet werden müssen
  • Erforderlicher Stopp: Gleiches gilt für den Stopp
  • Should-Start: Dienste, die gleichzeitig mit Exim . starten SOLLTEN
  • Default-Start: die Start-Runlevel
  • Default-Stop: Runlevel stoppen

Daher geben wir für jedes Skript in seinem LSB-Header seine Start- und Stoppbeschränkungen an.
Keine Anweisungen mehr, die als Parameter an update-rc.d alles in der Datei übergeben werden müssen.
Erfahren Sie alles über die Header LSB man insserv .

Es bleibt, die Regeln anzuwenden. Einfach update-rc.d mit den Standardoptionen aufrufen . Es liest die LSB-Konfiguration und wendet die Einstellungen entsprechend an.

 update-rc.d [-n] service_name defaults 

Mit dieser Option -n können Sie den Befehl testen, ohne ihn abzuspielen.

Jetzt muss noch ein Dienst gelöscht werden.
Da ist es einfacher.

 update-rc.d [-n] [-f] service_name entfernen 

Auch dort -n testen wir , ob alles gut wird.

Mit dieser Option -f können Sie das Entfernen von Links erzwingen, auch wenn /etc/init.d/nom_du_service noch existiert.
Es ist zu überprüfen, da ich in diesem Zusammenhang nicht unbedingt einen Fehler habe.

Schließlich, wenn Sie den Dienst später reaktivieren möchten, bestellen Sie erneut:

 update-rc.d [-n] service_name defaults 

Und alles beginnt von vorne.