Eine der Kernkompetenzen eines jeden Systemadministrators ist die Fähigkeit, Dienste so zu konfigurieren, dass sie beim Hochfahren des Servers automatisch gestartet werden.
Es gibt verschiedene Gründe, warum ein Server neu gestartet werden muss. Dazu gehören:
- Geplante Neustarts, beispielsweise wöchentlich oder monatlich.
- Unerwartete Neustarts aufgrund von Hardware- oder Kernelproblemen.
Durch die korrekte Konfiguration wird vermieden, dass diese Dienste nach jedem Neustart manuell gestartet werden müssen.
Dies ist ein wesentlicher Schritt zur Automatisierung der Serververwaltung.
Die folgenden Beispiele wurden auf zwei weit verbreiteten Distributionen, den DigitalOcean-Servern, getestet.
Konfiguration unter CentOS oder RHEL 6.x
Im folgenden Beispiel verwende ich einen Apache HTTP-Server, aber die Vorgehensweise ist für alle anderen Dienste, die beim Booten von Red Hat Enterprise Linux (RHEL) oder CentOS 6 gestartet werden sollen, identisch.
Sie können den Namen der Skriptdatei beibehalten. Hier habe ich „httpd“ verwendet.
- Melden Sie sich als Root-Benutzer auf Ihrem Linux-Server an.
- Erstellen Sie Ihr Skript unter /etc/init.d/ oder kopieren Sie es dorthin.
[[email protected] init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[[email protected] init.d]#
Wir werden das Dienstprogramm „chkconfig“ verwenden, das standardmäßig unter Linux und CentOS vorhanden ist.
- Fügen Sie mit „chkconfig“ und dem Parameter „–add“ ein Skript hinzu, das beim Booten gestartet werden soll.
[[email protected] init.d]# chkconfig --add httpd
[[email protected] init.d]# chkconfig httpd on
- Überprüfen Sie mit „–list“, ob das Skript erfolgreich hinzugefügt wurde.
[[email protected] init.d]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] init.d]#
Das ist alles! Das „httpd“-Skript wird nun beim Linux-Start ausgeführt, um den Dienst zu starten.
Wenn Sie den Autostart des Dienstes deaktivieren müssen, können Sie die folgenden Befehle verwenden:
chkconfig httpd off
chkconfig --del httpd
RHEL oder CentOS 7.x/8.x
Das Verfahren zum Konfigurieren von Diensten beim Booten in RHEL 7 unterscheidet sich geringfügig von RHEL 6, da hier „systemd“ zur Dienstverwaltung verwendet wird.
Die meisten Softwarepakete, wie Apache, PHP, MySQL oder Nginx, fügen bei der Installation ihre Skripte als Dienste hinzu.
Nehmen wir als Beispiel PHP-FPM.
Lassen Sie uns zuerst den Status von „php-fpm“ überprüfen (dies setzt voraus, dass die Skripte unter „/usr/lib/systemd/system/“ vorhanden sind).
[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[[email protected] ~]#
Wie Sie sehen, ist der Status „deaktiviert“, was bedeutet, dass er nicht für den automatischen Start beim Booten konfiguriert ist.
Aktivieren Sie nun php-fpm für den Start beim Booten, indem Sie „systemctl“ verwenden.
[[email protected] ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[[email protected] ~]#
Überprüfen wir nun den Status erneut:
[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled) Active: inactive (dead)
[[email protected] ~]#
php-fpm ist nun so konfiguriert, dass es beim Start hochfährt. Testen wir dies durch einen Server-Neustart.
Sollten Sie jemals das automatische Starten von Diensten beim Booten deaktivieren müssen, verwenden Sie den folgenden Befehl:
systemctl disable php-fpm
Möglicherweise ist auch dieser Artikel hilfreich, der systemd und automatisch startende Dienste beim Booten erklärt.
Ubuntu
Die Konfiguration von Autostart-Diensten in Ubuntu unterscheidet sich geringfügig. Nehmen wir an, der Skriptname ist „Nginx“.
- Melden Sie sich als Root am Ubuntu-Server an.
- Kopieren Sie das Skript in den Ordner „/etc/init.d/“.
- Führen Sie den folgenden Befehl aus:
update-rc.d nginx defaults
- Starten Sie den Server neu, um zu überprüfen, ob der Dienst gestartet wird.
Diese Anleitung war hilfreich und ist hoffentlich auch für Sie nützlich.
Die Systemadministration kann herausfordernd, aber auch lohnend sein. Wenn Sie Ihre Karriere in diesem Bereich ausbauen möchten, empfehle ich Ihnen diesen Udemy-Kurs.
Lesen Sie auch, wie Sie die Ursache für einen unerwarteten Linux-Neustart finden können.
Hier erfahren Sie, wie Sie PHP-FPM 5.6 auf CentOS 6.x installieren/aktualisieren.
Hat Ihnen der Artikel gefallen? Dann teilen Sie ihn doch!