[Frage] Warum wird mein Skript über die debug.cfg nicht im Hintergrund gestartet?

ip_001

Neuer User
Mitglied seit
3 Mai 2012
Beiträge
37
Punkte für Reaktionen
0
Punkte
6
Ich möchte gerne ein Skript (chkVOIP) nutzen, was aller zwei Stunden den Status meiner VoIP-Provider prüft.
Code:
exec > /var/tmp/debug.txt 2>&1
exec > /var/tmp/debug1.txt
status1=$(ctlmgr_ctl r sip settings/sip0/activated)
status2=$(ctlmgr_ctl r sip settings/sip1/activated)
sleepTime=7200 #Intervall aller wieviel Sekunden das Skript ausgefuehrt werden soll
exec > /var/tmp/debug2.txt
while [ 0 -eq 0 ] ; do
        if [ $status1 -ne 1 ] || [ $status2 -ne 1 ]
        then
                mailer -s "VoIP-Status pruefen $status1, $status2" -f <absender> -t <empfänger> -m <mailserver> -a <user> -w <password>
        fi
exec > /var/tmp/debug3.txt
sleep $sleepTime
done
exit 0#
Wenn ich das Skript manuell mit "chkVOIP &" aufrufe und in den Hintergrund schicke funktioniert es, und im Fehlerfall wird eine Mail versendet. Der Prozess ist sichtbar.

Nach Neustart der Fritzbox soll das Skript automatisch gestartet werden. Dazu wird das Skript in der debug.cfg hinterlegt.
Code:
exec > /var/tmp/debug0.txt 2>&1
HDD='USBSPEICHER'
HDD_ABSOLUT='/var/media/ftp/'$HDD
TEMP=/var/tmp
while ! [ -d $HDD_ABSOLUT ] ; do sleep 5; done
cd $TEMP
cp $HDD_ABSOLUT/7330/chkVOIP $TEMP
chmod +x chkVOIP
/bin/sh $TEMP/chkVOIP &
Nach Prüfung mittels "ps" finde ich keinen entsprechenden Hintergrundprozess. Die Debug-Dateien im Skript chkVOIP und debug.cfg werden erstellt, aber enthalten keine Informationen auf einen evtl. Fehler. Das Skript wird auch korrekt nach /var/tmp kopiert.

Was könnte die Ursache sein?
 
Zuletzt bearbeitet:
Nach einigen weiteren Versuchen habe ich es immer noch nicht geschafft, dass das Skript nach Neustart der Fritzbox 7330 automatische gestartet wird. Auf der Fritzbox läuft die neueste Firmware von AVM ohne weiter Modifikationen.

Hat jemand eine Idee und kann mir auf die Sprünge helfen? ;-)
 
Füge mal ein
Code:
trap '' SIGHUP
am Anfang des Scripts ein.
 
Füge mal ein
Code:
trap '' SIGHUP
am Anfang des Scripts ein.

Vielen Dank, es funktioniert.

Zu meinem Verständnis. Wenn die Fritzbox hochfährt, wird die debug.cfg in einer Shell-Instanz ausgeführt. Shell-Skripte die durch diese Instanz gestartet werden und im Hintergrund laufen sollen, werden mit Beendigung dieser Instanz (Empfang des Signals SIGHUP) ebenfalls beendet. Das trap-Kommando in dem jeweiligen Shell-Skript ignoriert dieses Signal. Ist meine Erklärung korrekt?
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,872
Beiträge
2,303,482
Mitglieder
378,533
Neuestes Mitglied
PatrickSt91