FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: stobor am 03 Februar 2013, 22:35:56

Titel: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 03 Februar 2013, 22:35:56
Hallo,
weiß jemand, wie ich auf der FritzBox automatisch bach einem Reboot ein sh-Skript ausführen kann?
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: Markus Bloch am 03 Februar 2013, 22:45:31
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
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 04 Februar 2013, 20:05:06
Komme ich da mit eiem Windows-Explorer ran?
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: Markus Bloch am 04 Februar 2013, 20:48:28
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
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 06 Juli 2013, 20:39:37
Wie füge ich denn am einfachsten was zu dieser Datei?
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: UliM am 07 Juli 2013, 08:23:38
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-)
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 30 Juli 2013, 20:42:46
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.
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: PeMue am 30 Juli 2013, 21:20:44
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
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 30 Juli 2013, 22:35:34
Hallo PeMue,
wie sollte das bei mir genau aussehen. In der Schleife am Anfang wird doch schon gewartet.
Danke, Stobor
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: PeMue am 31 Juli 2013, 20:23:35
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
Titel: Aw: sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 01 August 2013, 20:50:36
Das Script verstehe ich irgendwie nicht wirklich. Geht's da nicht um das Starten von fhem?
fhem startet bei mir ja wunderbar.
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 09 November 2013, 14:15:30
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.
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 11 November 2013, 17:42:37
Hat denn niemand eine Idee, das zu lösen?
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: Mani007 am 11 November 2013, 20:32:25
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.
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: Mani007 am 12 November 2013, 15:34:54
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 !!!
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 12 November 2013, 16:13:54
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.
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: Mani007 am 12 November 2013, 17:06:17
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 ??
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 12 November 2013, 20:04:08
Rechte stehen auf 726
ein chmod 775 Tuerklingel.sh ändert daran nichts.
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: Mani007 am 12 November 2013, 20:14:34
Brachte die Signal Ignorierung etwas ??    trap '' SIGHUP
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: stobor am 13 November 2013, 22:16:41
Super, danke!
trap '' SIGHUP scheint zu helfen.

Vielen Dank
Titel: Antw:sh-Skript automatisch starte bei FritzBox Reboot
Beitrag von: Mani007 am 13 November 2013, 22:23:54
super das freut mich .