Hallo, mein Problem ist folgendes: Ich habe einen Raspberry (A+) mit einem Teensy 3.6 über die serielle Verbunden, denn der Teensy soll den Raspberry über ein serielles Protokoll steuern. Auf den Raspberry wird ein Python-Programm automatisch gestartet welches dann an der serielle Schnittstelle "lauscht", sprich auf Befehle des Teensy's wartet. Der Teensy wartet ca. 1 Minute bis der Raspberry gebootet hat und versucht dann den den Raspberry "anzusprechen". Sobald der Teensy einige Bytes über sie serielle Schnittstelle an den Raspberry geschickt hat - stürzt der Raspberry ab. Ich vermute er geht in den "Halt"-Modus. Wenn ich das Python-Programm am Respberry über ein Terminal (ssh) starte funktioniert alles problemlos, die Kommunikation zwischen den Devices ist ok - aber eben nicht beim Autostart des Skipts. Auf dem Raspberry habe ich die serielle Shell-Login, Modemmanager und getty deaktiviert. Nach einigen Tagen Tagen des Probierens und Konfigurierens weiss ich nun nicht mehr weiter und hoffe auf einen Tip. Danke ...
Wie startest du das Programm denn automatisch nach dem Booten? Falls du die rc.local verwendest: Schiebst du die Anwendung in den Hintergrund? Sonst blockiert die den Bootvorgang.
Kann es sein, dass Dein Teensy mit Uart in TTL Pegel sendet? Der Raspberry mag hier nur LVTTL.
Hans schrieb: > Wie startest du das Programm denn automatisch nach dem Booten? > > Falls du die rc.local verwendest: Schiebst du die Anwendung in den > Hintergrund? Sonst blockiert die den Bootvorgang. Würde mich jetzt auch interessieren. Ich habe auch verschiedene Möglichkeiten probiert, und am besten war immer ein Script in init.d und ein Link in rcX.d. So wie Methode 1 in https://jankarres.de/2014/07/raspberry-pi-autostart-von-programmen-einrichten/
Welches System läuft auf dem Pi? Öffnet es eine Konsole oder eine Logausgabe währen des Bootens auf der seriellen?
Hallo, ich habe jessie lite installiert und das Python Skript mittels rc.local automatisch gestartet. Jetzt starte ich das Skript mit crontab und es scheint zu laufen wie gewünscht. Ich werde das heute Abend nochmal genauer nachprüfen. Auf jeden Fall vielen Dank für die Hilfe.
Sven schrieb: > Jetzt starte ich das Skript mit crontab und es > scheint zu laufen wie gewünscht. Kannst du deinen Auszug aus der Crontab hier mal posten? Je nachdem könnte es sein, dass dein Script nach etwa 15 Minuten erneut gestartet wird
Das richtige Vorgehen wäre übrigens systemd zu verwenden
Hans schrieb: > Das richtige Vorgehen wäre übrigens systemd zu verwenden Warum? Ist es bei Linux nicht grad so, daß es viele unterschiedliche Methoden gibt und nicht nur 'die richtige' und 'die falsche'? Und wenn nicht, wer entscheidet welche der Möglichkeiten die einzig 'richtige' ist?
Horst schrieb: > Warum? Ist es bei Linux nicht grad so, daß es viele unterschiedliche > Methoden gibt und nicht nur 'die richtige' und 'die falsche'? > Und wenn nicht, wer entscheidet welche der Möglichkeiten die einzig > 'richtige' ist? Alles hat seinen Zweck. In der rc.local und per Crontab @reboot sollten nur Scripte und Programme gestartet werden, die nur kurz! laufen und sich danach automatisch beenden. Hier wird allerdings offenbar ein Programm gestartet, dass über lange Zeit läuft. Daher hat es auch den Boot per rc.local blockiert. Das Problem ist nun, dass du ein Programm, dass du über die rc.local oder einen cronjob nur per killall bzw. kill <pid> beenden kannst. Dazu kommt, dass über die rc.local gestartete Anwendungen (ohne Umleitung nach /dev/null) ihre Ausgaben auf /dev/tty1 ausgeben. Möchte man auf dieser Konsole arbeiten, ist das schwierig. Machst du das allerdings sauber über einen service, dann kannst du das Programm jederzeit per Befehl starten, stoppen oder neustarten. Dazu kommt, dass du bei systemd auch Abhängigkeiten erfüllen kannst. Benötigt dein Programm z.B. eine Netzwerkverbindung, dann wird es erst ausgeführt, sobald die dafür notwendigen Prozesse laufen. Dazu kannst du im Fehlerfall die Ausgaben des Programms abfragen und somit Probleme identifizieren. Bei Cron oder rc.local landen diese Informationen im Nirvana.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.