Absturzsicherung

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
H3llGhost
Beiträge: 137
Registriert: 20.09.2009 11:33:47

Absturzsicherung

Beitrag von H3llGhost » 01.01.2010 16:20:17

Hallo Leute,

ich habe einen kleinen Skript mit dem ich meinen selbstgeschrieben Perl Daemon starten, stoppen und neustarten kann.
Das habe ich jetzt erstmal mit update.rc als Autostart mit eingefügt.

Meine Frage ist nur, wie kann ich jetzt dafür sorgen, sobald sich das Skript aus welchen Gründen auch immer selbst beendet es automatisch neugestartet wird?
Also ähnliche wie die Windows-Dienste oder unter Linux geht das ja auch. :)

Hier mein Skript:

Code: Alles auswählen

#!/bin/bash

# set your correct Daemon perl path
cd /var/daemon

case "$1" in
   start)
       echo "Starting Conv-Daemon";
       if [ -f cdaemon.pid ]; then
          kill -0 `cat cdaemon.pid` >/dev/null 2>&1
          if [ "$?" == "0" ]; then
              echo "Conv Daemon already running!"
          else
              rm -rf cdaemon.pid
              ./daemon.pl >log`date +_%d%b%y_%H:%M:%S` 2>&1 &
              echo $! >cdaemon.pid
              echo "PID file created"
              echo "Started successfully"
          fi
       else
          ./daemon.pl >log`date +_%d%b%y_%H:%M:%S` 2>&1 &
          echo $! >cdaemon.pid
          echo "PID file created"
          echo "Started successfully"
       fi
     ;;
   stop)
       echo "Stopping Conv-Daemon..."
       kill -9 `cat cdaemon.pid` >/dev/null 2>&1
       if [ "$?" == "0" ]; then
          rm -rf cdaemon.pid
          echo "Stopped successfully"
       else
          echo "No Conv Daemon running!"
       fi
     ;;
   restart)
       echo "Restarting Conv-Daemon..."
       kill -9 `cat cdaemon.pid` >/dev/null 2>&1
       if [ "$?" == "0" ]; then
           rm -rf cdaemon.pid
           ./daemon.pl >log`date +_%d%b%y_%H:%M:%S` 2>&1 &
           echo $! >cdaemon.pid
           echo "PID file created"
           echo "Restarted successfully"
       else    
           echo "Conv Daemon not started"
           if [ -f cdaemon.pid ]; then
             rm -rf cdaemon.pid
           fi
           ./daemon.pl >log`date +_%d%b%y_%H:%M:%S` 2>&1 &
           echo $! >cdaemon.pid
           echo "PID file created"
           echo "Started successfully"
       fi
     ;;
   *)
       echo "Usage: run_daemon [ start | stop | restart ]"
     ;;
esac

#
exit 0
Vielen Dank im Vorraus. :)

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Absturzsicherung

Beitrag von Colttt » 01.01.2010 19:29:26

guck mal HIER sollte auf dein skript übertragbar sein.. und statt der mail kannst du ja den dienst neu starten lassen
Debian-Nutzer :D

ZABBIX Certified Specialist

H3llGhost
Beiträge: 137
Registriert: 20.09.2009 11:33:47

Re: Absturzsicherung

Beitrag von H3llGhost » 30.01.2010 22:04:07

Danke für den Link.
Ich habe es jetzt mit einem Cronjob geregelt, welcher aus der pid-Datei die PID liesst und dann einen simulierten Kill probiert.
Wenn es da eine Meldung gibt, dass der Prozess nicht vorhanden ist, wird dieser erneut gestartet. :)

Antworten