Überwachen ob Asterisk läuft ?

Fux

Mitglied
Mitglied seit
3 Jun 2004
Beiträge
420
Punkte für Reaktionen
0
Punkte
16
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 ?
 

betateilchen

Grandstream-Guru
Mitglied seit
30 Jun 2004
Beiträge
12,882
Punkte für Reaktionen
0
Punkte
0
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.
 

Fux

Mitglied
Mitglied seit
3 Jun 2004
Beiträge
420
Punkte für Reaktionen
0
Punkte
16
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)
 

betateilchen

Grandstream-Guru
Mitglied seit
30 Jun 2004
Beiträge
12,882
Punkte für Reaktionen
0
Punkte
0

Fux

Mitglied
Mitglied seit
3 Jun 2004
Beiträge
420
Punkte für Reaktionen
0
Punkte
16
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.
 

TomS

Neuer User
Mitglied seit
13 Nov 2004
Beiträge
199
Punkte für Reaktionen
0
Punkte
16
@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...
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,332
Beiträge
2,021,243
Mitglieder
349,883
Neuestes Mitglied
Lokivirus91