Hallo,
weiß jemand, wie ich auf der FritzBox automatisch bach einem Reboot ein sh-Skript ausführen kann?
Ganz einfach, füge den Aufruf deines Skriptes an das Ende von /var/flash/debug.cfg an. Alle Befehle die in dieser Datei stehen, werden beim Hochfahren der Box gestartet.
Allerdings sollte das Skript nicht endlos laufen, sondern am besten mit
script.sh &
in den Hintergrund schicken.
Viele Grüße
Markus
Komme ich da mit eiem Windows-Explorer ran?
Hi Stobor,
nein leider nicht, du musst dir dazu den Telnetzugang an der FritzBox aktivieren und das ganze auf einer Linux-Kommandozeile durchführen.
Viele Grüße
Markus
Wie füge ich denn am einfachsten was zu dieser Datei?
Hi,
mit Verlaub: Wenn Du das nicht weisst, solltest Du da auch nix reinhängen - denn wenn das Reingehängte nicht läuft, kannst Du evtl die FB nicht mehr starten.
=8-)
Hmmmmm, ich hatte das vor längerer Zeit schon einmal probiert.
Meine debug.cfg sieht noch immer so aus:
# cat debug.cfg
# =========== Pruefung, ob Internet erreichbar =========
while !(ping -c 1 www.google.de); do
sleep 5
done
# =========== dann weiter und Skripte ausfuehren =======
/var/InternerSpeicher/256MB-01/Tuerklingel.sh &
/var/InternerSpeicher/fhem/startfhem
#
Aber das Tuerklingel.sh Script scheint nicht zu laufen. Ich sehe es auch nicht über den ps-Befehl, wenn ich mit der FritzBox per Telnet verbunden bin. Nach einem FritzBox-Neustart mussich das Script immer manuell starten, indem ich mich per Telnet mit der FritzBox verbinde und dann
/var/media/ftp/256MB-01/Tuerklingel.sh &
eingebe. Ich meine anstatt .../media/ftp/... habe ich auch schon .../InternerSpeicher/... Probiert zu haben.
Mache ich da einen Gedankenfehler?
Danke für weitere Hilfe.
Hallo Stobor,
probier's doch mal mit ein bisschen warten (http://forum.fhem.de/index.php?topic=11755.msg87252#msg87252) vor dem Start des Skripts. Scheint beim Start von fhem auch schon mal geholfen zu haben ...
Gruß PeMue
Hallo PeMue,
wie sollte das bei mir genau aussehen. In der Schleife am Anfang wird doch schon gewartet.
Danke, Stobor
Hallo Stobor,
in Deiner ersten Schleife prüfst Du, ob die Internetverbindung klappt. Ich bin mir aber nicht sicher, ob da schon der USB Stick erkannt wird. Daher habe ich Dir im letzten Post den Link reinkopiert, wo der automatische Start erst nach Warten erfolgt ist.
Viele Grüße
PeMue
Das Script verstehe ich irgendwie nicht wirklich. Geht's da nicht um das Starten von fhem?
fhem startet bei mir ja wunderbar.
Hallo,
ich stehe noch immer auf dem Schlauch. Ich habe mein Skript mal vom USB-Stick auf die FritzBox geschoben und die debug.cfg angepasst:
# =========== Pruefung, ob Internet erreichbar =========
while !(ping -c 1 www.google.de); do
sleep 5
done
# =========== dann weiter und Skripte ausfuehren =======
/var/InternerSpeicher/eigeneProgramme/Tuerklingel.sh &
sleep 5
/var/InternerSpeicher/fhem/startfhem
Trotzdem finde ich Tuerklingel.sh nicht in der über ps aufgerufenen Prozessliste.
Was mache ich denn nur falsch?
Führe ich /var/InternerSpeicher/eigeneProgramme/Tuerklingel.sh & über Telnet aus, läuft alles wunderbar.
FHEM läuft im übrigen wunderbar. Auch ohne das vorgestellte sleep 5.
Hat denn niemand eine Idee, das zu lösen?
Doch eine Lösung hätte ich noch wenn du freetz drauf hättest könntest du die sh in die .profile oder rc.custom eintragen.
Hallo stobor,
vorab korrigiert mich wenn das nicht stimmt . Habs aber selbst an einer 2 x FB7390 probiert .
Das wird auch nicht so funktionieren wie oben beschrieben !!
Grund: wenn das Script durchgelaufen ist das in der debug.cfg steht beendet er auch die Türklingel.sh (Warum er das nicht bei fhem tun weiß ich nicht, wird wahrscheinlich woanders gestart. Aufruf an die Profis grins)
Deswegen findest du mit ps den Hintergrundprozess nicht .
Abhilfe schreibe am Anfang der Türklingel.sh trap ' ' SIGHUP somit wird der Befehl die sh zu beenden ignoriert .
Das erklärt auch das du per telnet wenn du es manuell eintippst solange läuft bist du die Session beendest .
Bitte Feedback obs funst !!!
Wie würde das mit dem trap genau aussehen? Kommt das in die Tuerklingel.sh oder in die debug.cfg? Wie genau muss der Code aussehen?
hier meine debug.cfg:
# =========== Pruefung, ob Internet erreichbar =========
while !(ping -c 1 www.google.de); do
sleep 5
done
# =========== dann weiter und Skripte ausfuehren =======
/var/InternerSpeicher/eigeneProgramme/Tuerklingel.sh &
sleep 5
/var/InternerSpeicher/fhem/startfhem
und meine Tuerklingel.sh:
#!/bin/sh
while :
do
if test -r /var/log/printer_status #wenn ein usb_printer_port gesteckt ist ...
then
while grep 2 /var/log/printer_status >/dev/null 2>&1
do
sleep 1
done
echo "ATP1 ATD**9" | nc 127.0.0.1 1011 # Rundruf auf alle Telefone von FON1
sleep 30 # 10 sek. warten
echo "ATP1 ATH0" | nc 127.0.0.1 1011 # auflegen = Ruf beenden
fi
sleep 2
done
Wenn ich Tuerklingel.sh manuell starte (über Telnet), läuft das auch weiter, wenn Telnet beendet wurde.
Abhilfe schreibe am Anfang der Türklingel.sh trap ' ' SIGHUP somit wird der Befehl die sh zu beenden ignoriert .
trap '' SIGHUP
#!/bin/sh
while :
do
if test -r /var/log/printer_status #wenn ein usb_printer_port gesteckt ist ...
then
while grep 2 /var/log/printer_status >/dev/null 2>&1
do
sleep 1
done
echo "ATP1 ATD**9" | nc 127.0.0.1 1011 # Rundruf auf alle Telefone von FON1
sleep 30 # 10 sek. warten
echo "ATP1 ATH0" | nc 127.0.0.1 1011 # auflegen = Ruf beenden
fi
sleep 2
done
Andere Frage nebenbei hast du der Tuerklingel.sh genügend rechte gegeben ?? chmod 775 ??
Rechte stehen auf 726
ein chmod 775 Tuerklingel.sh ändert daran nichts.
Brachte die Signal Ignorierung etwas ?? trap '' SIGHUP
Super, danke!
trap '' SIGHUP scheint zu helfen.
Vielen Dank
super das freut mich .