CentOS/RHEL stellt uns ein einfaches Befehlszeilentool (chkconfig) zur Verwaltung von Diensten zur Verfügung, die während der verschiedenen Runlevel Ihres Systems gestartet werden. chkconfig benötigt einige zusätzliche Kommentarzeilen im eigentlichen Init-Skript, um ihm mitzuteilen, in welchen Runleveln der Dienst gestartet werden soll und wann der Dienst relativ während der Initialisierung des Runlevels gestartet werden soll. (Init-Skripte werden in einer bestimmten Reihenfolge verarbeitet, um sicherzustellen, dass Dienste, die von anderen abhängig sind, nach den Diensten gestartet werden, von denen sie abhängen.) Diese Zeilen aus dem httpd-Init-Skript lauten wie folgt:
# chkconfig: 345 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI.
Hier
345 – Runlevels, für die der Dienst standardmäßig aktiviert wird.
85 – Startpriorität. Je niedriger die Zahl, desto höher die Priorität und desto früher wird ein Dienst innerhalb eines bestimmten Runlevels gestartet.
15 – Stopppriorität. Je niedriger die Zahl, desto höher die Priorität und desto früher wird ein Dienst innerhalb eines bestimmten Runlevels gestoppt.
Dienste mit chkconfig auflisten
Um eine Liste zu erhalten, welche Dienste auf welchem Runlevel gestartet werden, verwenden Sie den Befehl „chkconfig –list “.
# chkconfig --list acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off ...
Optional können Sie einen Namen als zusätzliches Argument hinzufügen, und chkconfig listet nur die Informationen für diesen Dienst auf. Es folgt die Ausgabe von chkconfig –list iptables auf meinem System:
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:on 5:on 6:off
In diesem Fall meldet chkconfig, dass der iptables-Dienst für die Runlevel 3, 4 und 5 gestartet werden soll.
Aktivieren oder Deaktivieren eines Dienstes beim Booten
In diesem Beispiel verwenden wir den iptables-Dienst. Wenn Sie möchten, listen Sie die aktuellen Regeln auf, in denen die Dienste beginnen:
# chkconfig --list iptables httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
„chkconfig on“ ohne Angabe eines Runlevels aktiviert den Dienst auf Runlevel 2, 3, 4 und 5. Zum Beispiel:
# chkconfig iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Um den Dienst auf allen Ausführungsebenen zu deaktivieren, verwenden Sie auf ähnliche Weise den Befehl „chkconfig off“. Zum Beispiel:
# chkconfig iptables off
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfig-Feinkontrolle
Die –Ebene Option kann an chkconfig übergeben werden, um anzugeben, welche Runlevels geändert werden sollen (entweder ein- oder ausgeschaltet). Andere Runlevel werden nicht verändert. Dies würde das System so konfigurieren, dass es iptables in den Runlevels 3 und 5 startet:
# chkconfig --level 35 iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:off 5:on 6:off
Hinzufügen eines Dienstes mithilfe von chkconfig
Um einen neuen Dienst gemäß den Empfehlungen von chkconfig zu allen Ausführungsebenen hinzuzufügen, verwenden Sie den folgenden Befehl:
# chkconfig --add [servicename]
chkconfig setzt auf einen Schlag alle Links für den Dienst in die richtigen Verzeichnisse.
Hinweis :Wenn eine Anwendung oder ein Dienst installiert wird, wird ein Initialisierungsskript generiert und automatisch zu /etc/init.d hinzugefügt. Wenn Sie also Schwierigkeiten haben, den Namen Ihres Dienstes zu identifizieren, besuchen Sie /etc/init.d, suchen Sie das entsprechende Skript und ermitteln Sie den Dienstnamen aus seinem Inhalt.Dienstinformationen zurücksetzen
Das Spielen mit Diensten ist lehrreich, solange Sie ein Backup Ihres /etc/rc.d-Verzeichnisbaums und eine Möglichkeit haben, wieder in das System einzusteigen, um es wiederherzustellen. Diese Art von drastischen Maßnahmen ist jedoch normalerweise nicht erforderlich. Stattdessen können Sie die Startpriorität des Dienstes und andere Informationen auf die empfohlenen Einstellungen zurücksetzen, indem Sie den folgenden Befehl ausführen.
# chkconfig [servicename] reset
Dieser Befehl setzt alles auf einen (hoffentlich) vernünftigen Standardwert zurück.
Entfernen eines Dienstes mit chkconfig
Wenn Sie die Verwendung eines Dienstes nicht mehr benötigen, können Sie ihn beim Booten deaktivieren, indem Sie den Schalter „chkconfig off“ verwenden:
# chkconfig [servicename] off
Sie sollten dann fortfahren, den Dienst mit dem folgenden Befehl zu stoppen:
# service [servicename] stop
Der vorhergehende Befehl wird sofort wirksam. Um diesen Vorgang abzuschließen, möchten Sie ihn jedoch möglicherweise aus dem chkconfig-Verwaltungstool entfernen, indem Sie Folgendes eingeben:
# chkconfig --del [servicename]