Symcon Watchdog für die Nutzung unter Linux

Hallo,

nachdem meine beiden Symcon Installationen seit dem Update auf 4.3 nun nicht mehr stabil Laufen, also diverse Probleme wie z.B. das kein exec nach einigen Stunden / Tagen / Wochen aus PHP mehr ausgeführt werden kann, was ich durch das ersetzten der zumeist wget Komandos durch php curl gelößt habe ist es nun auch so das Symcon selbst in Unregelmäßigen Abständen hängt also der Port 3777 nicht mehr Verfügbar ist und auch alle Schnittstellen tot sind…

Deshalb hier ein einfacher Watchdog welcher am Linux Rechner wo Symcon läuft prüft ob der Port 3777 aus dem Netzwerk erreichbar ist und wenn nicht den Symcon Dienst neu Startet:

Als Benutzer root habe ich dazu einfach ein Verzeichniss im /etc angeelgt


mkdir /etc/scripts
cd /etc/scripts

Und hier dann eine Datei symcon.watchdog.sh erstellt und ausführbar gemacht mit


touch symcon_watchdog.sh
chmod +x symcon_watchdog.sh

der Inhalt des Scriptes ist wie folgt (einfach mit dem Editor eurer Wahl vi, nano oder was auch immer) einfügen:


#!/bin/bash


s=$(netstat -tlnp|grep 3777|wc -l)
file="/var/log/symcon_watchdog.log"


if [ $s -eq 0 ]
then
  echo "$(date "+%Y.%m.%d %H:%M:%S") Restart symcon..." >> $file
  killall -9 symcon
  sleep 3
  /etc/init.d/symcon restart
else
  echo "$(date "+%Y.%m.%d %H:%M:%S") all fine..."
fi

Das Script erstellt auch ein Log file (/var/log/symcon_watchdog.log) in dem jeder Neustart Protokolliert wird.

Nun noch einen geplanten Task (cronjob) anlegen der alle 15 Minuten das Script ausführt:

crontab -e

und hier folgende Zeile einfügen:

*/15 * * * *	/etc/scripts/symcon_watchdog.sh