Veröffentlicht am Schreiben Sie einen Kommentar

Server: Prozesse automatisch Neustarten (Shell-Script)

Startet z.B. MariaDB neu falls dieser nicht mehr läuft. Dieses funktioniert und ist getestet mit Debian 11.
Falls MariaDB nicht mehr laufen sollte wird dieser Service einfach neugestartet. Dieses lässt sich auch für andere Services erweitern. Schade das es WatchDog nicht mehr gibt für Debian 11.
Dieses Shell-Script funktioniert mit bash und sh.

#!/bin/bash

# Überprüfen, ob der MariaDB-Dienst läuft
if systemctl is-active --quiet mariadb
then
    echo "MariaDB läuft."
else
    echo "MariaDB läuft nicht. Starte MariaDB neu..."
    # MariaDB neu starten
    systemctl start mariadb
    if systemctl is-active --quiet mariadb
    then
        echo "MariaDB wurde erfolgreich neu gestartet."
    else
        echo "Fehler beim Neustart von MariaDB."
    fi
fi

Hier ist eine detaillierte Beschreibung:

  1. #!/bin/bash: Dies ist der Shebang, der angibt, dass das Skript mit bash, der Bourne-Again-Shell, ausgeführt werden soll.
  2. if systemctl is-active --quiet mariadb: Dieser Befehl überprüft, ob der MariaDB-Dienst aktiv ist. Wenn der Dienst aktiv ist, gibt systemctl is-active --quiet mariadb einen Exit-Code von 0 zurück.
  3. echo "MariaDB läuft.": Wenn der MariaDB-Dienst läuft, wird diese Nachricht ausgegeben.
  4. else: Dieser Teil des Skripts wird ausgeführt, wenn der MariaDB-Dienst nicht läuft.
  5. echo "MariaDB läuft nicht. Starte MariaDB neu...": Diese Nachricht wird ausgegeben, wenn der MariaDB-Dienst nicht läuft.
  6. systemctl start mariadb: Dieser Befehl versucht, den MariaDB-Dienst zu starten.
  7. if systemctl is-active --quiet mariadb: Nach dem Versuch, den Dienst zu starten, überprüft das Skript erneut, ob der Dienst jetzt läuft.
  8. echo "MariaDB wurde erfolgreich neu gestartet.": Wenn der Dienst erfolgreich gestartet wurde, wird diese Nachricht ausgegeben.
  9. else echo "Fehler beim Neustart von MariaDB.": Wenn der Dienst immer noch nicht läuft, wird diese Fehlermeldung ausgegeben.

Cronjob mittels Crontab -e

 einen Cronjob zu erstellen, der alle 5 Minuten überprüft, ob ein Prozess läuft, können Sie den crontab-Befehl verwenden. Hier ist ein Beispiel, wie Sie das tun können:

  1. Öffnen Sie Ihren Crontab mit dem Befehl crontab -e.
  2. Fügen Sie die folgende Zeile hinzu, um Ihr Skript alle 5 Minuten auszuführen:
*/5 * * * * /pfad/zum/skript.sh

Ersetzen Sie /pfad/zum/skript.sh durch den tatsächlichen Pfad zu Ihrem Skript.

Dieser Cronjob wird nun alle 5 Minuten ausgeführt und überprüft, ob der MariaDB-Prozess läuft, und startet ihn neu, wenn er nicht läuft.

Bitte beachten Sie, dass Sie möglicherweise sudo vor dem crontab-Befehl benötigen, abhängig von Ihren Systemberechtigungen. Stellen Sie außerdem sicher, dass Ihr Skript ausführbare Berechtigungen hat. Sie können dies mit dem Befehl chmod +x /pfad/zum/skript.sh erreichen. 

Kommentar verfassen