Überwachen ob Asterisk läuft ?

Fux

Mitglied
Mitglied seit
3 Jun 2004
Beiträge
440
Punkte für Reaktionen
1
Punkte
18
Hallo zusammen,

es ist zwar seltener geworden aber ab und zu stürzt Asterisk ja doch mal ab.

Da wäre doch ein kleines Shellscript ganz nützlich, welches regelmäßig prüft, ob * läuft und falls nicht * wieder neu startet.

Leider sind meine Linux-Kenntnisse sehr begrenzt - daher bekomme ich das alleine nicht hin.

Mein Ansatz wäre: ps aux | grep asterisk -> * enthalten ? -> nein -> asterisk starten.
Der schwierigste (und für mich im Moment unlösbare Teil) ist "* enthalten".

Jemand einen Tip parat ?
 
schau Dir mal das Verzeichnis /var/run/ an. Solange der Asterisk läuft, gibt es dort eine Datei asterisk.pid und eine asterisk.ctl

Das sollte als erster Anhaltspunkt genügen und 99% Deiner Ausfälle abdecken.
 
So sieht meine momentane Lösung aus:

Code:
#!/bin/sh
checkproc /usr/sbin/asterisk
if [ $? != 0 ] ; then /usr/sbin/asterisk; echo "Asterisk restarted"; exit; fi

EDIT:

Das Script lasse ich per cron alle 5 Minuten ausführen.
Der sinn des "Echo"-Befehls ist der, daß ich so sehen kann, wann * neu gestartet werden mußte, da mir die Ausgabe des Scriptes (so denn eine vorhanden) per Mail zugestellt wird.

@Beta: Danke für den Tip. Sicher auch ein gangbarer Weg. Leider habe ich diesmal keine Mail bekommen, daß du geantwortet hast. (Obwohl " Benachrichtigt mich, wenn eine Antwort geschrieben wurde" aktiviert war)
 
Hm, dann hätte ich mir das ja wohl auch sparen können.
Oder ?

So ein Script hätte doch nur Vorteile, wenn es nicht einfach nur prüfen würde, ob der Prozess noch existiert, sondern ob * auch noch tut was es soll.
Es müßte also irgendiwe checken, ob die Funktionen noch da sind.
 
@fux:
vieleicht kann man über agi oder die management-schnittstelle (vieleicht sogar remote?) prüfen ob sich der * noch rührt? Wenn * einfriert ist ja nicht mal mehr ein "reload" der Konfig möglich - dann muß der Prozess mit killproc entfernt werden. Für einen "einfachen Absturz" (der vermutlich öffter als ein Einfrieren des Prozesses vorkommt) ist Dein Script praktisch.

@betateilchen:
die Lösung mit respawn läuft so aber nur, wenn zum Start von Asterisk keine weiteren Treiber benötigt werden. Bei einer Bristuffed-Version (hfc) müssen zum ersten Start auch noch die zaphfc-Treiber mit "make loadNT" geladen werden...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.