Tiny Core Linux Pytonscript läuft nicht automatisch nach reboot

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo zusammen,


    dies ist mein erstes Projekt und meine ersten Schritte mit Linux und dem Raspberry.


    1. Ich lese seit mehreren Tagen alles mögliche zu dem Thema und verzweifle langsam. Unter vielem anderen habe ich mir auch das hier angeschaut Autostart eines Python Script


    2. Ich möchte das mein pi4 nach dem starten im Stande ist RFID-Tags zu lesen und je nach Tag verschiedene Aufgaben auszuführen. Also pi starten, Karte dran, pi sendet Befehl.


    3. Wenn ich per ssh mein Script starte läuft alles. Mittlerweile läuft es auch weiter wenn ich die ssh Session beende.


    4. Das script startet anscheinend mittlerweile automatisch, wenn ich den pi reboote. Aber es läuft anscheinend nicht. Wenn ich meine Karten dran halte passiert nichts. Sobald ich mich per ssh einlogge läuft und funktioniert alles, ohne das ich einen Befehlt eingeben muss.


    Aktuell sieht es so aus das ich über das folgende Script mein Python script direkt beim Booten starte:

    Code
     /etc/profile.d/ThoDaBox_start.sh
    #!/bin/sh
    #
    #
    export PYTHONPATH=/mnt/mmcblk0p2/vol/lib/python3.8/site-packages:$PYTHONPATH
    
    sudo DISPLAY=:0 python3 /mnt/mmcblk0p2/vol/ThoDaBox.py & > /mnt/mmcblk0p2/vol/ThoDaBox.out

    Sobald ich mich einlogge sehe ich das meine debug-print Befehle im Terminal erscheinen. Per ps sehe ich das es läuft:

    Code
    10214 root      0:00 sudo DISPLAY=:0 python3 /mnt/mmcblk0p2/vol/ThoDaBox.py
    10217 root      0:13 python3 /mnt/mmcblk0p2/vol/ThoDaBox.py

    Wenn ich dann eine Karte dran halte sehe ich die entsprechenden Ausgaben im Terminal und die programmierten funktionen werden auch ausgeführt. Aber halt erst nachdem ich mich einlogge.


    Ich habe es auch schon über cron-jobs @reboot ausprobiert -> kein Erfolg

    Ich habe es auch schon mit

    Code
    sudo nohup python3 /mnt/mmcblk0p2/vol/ThoDaBox.py &

    probiert -> ohne Erfolg


    Auch noch einiges andere habe ich probiert, aber so langsam verzweifle ich wirklich. Ich hoffe ich nerve euch nicht zu sehr, weil schon wieder einer fragt wie er sein Pythonscript automatisch nach reboot ans laufen bekommt.


    Bitte beachtet das es sich um TinyCoreLinux handelt und es zum Beispiel kein rc.local gibt, zumindest finde ich das nicht, oder es ist bei TinyCore eben profile.d .


    Danke schon mal an alle die es lesen!

  • Hallo und willkommen im Forum.


    Mach dir bitte nicht gleich zu große Hoffnungen, wenn du meinen Beitrag liest.

    Ich kenne dein Linux nicht, aber hast du nicht die Möglichkeit dein Programm mit 'systemd' zu starten?


    In der Befehlszeile mit man systemd findest du Informationen darüber und im Netz gibt es viele Beispiele wie man ein Programm damit automatisch startet.


    Wie sieht denn dein Programm aus?


    Grüße

    Dennis

    🎧 Marylin´s Befehle an meine Junge Seele hör ich in jedem Lied. Heimlich eingegeben, in mein Innenleben, durch den Hard-Rock Beat 🎧

  • Hallo Dennis,


    systemd gibt es bei dem TinyCoreLinux nach meinem Wissen nicht. Zumindest habe ich es noch nicht gefunden. Danach gesucht hatte ich schon. TinyCore ist halt echt sehr klein und somit performant. Deshalb unterscheidet es sich leider auch etwas von anderen.


    Aber schon mal vielen Dank für die schnelle Rückmeldung. :thumbup:


    Grüße Martin

  • Hallo,

    danke erstmal für die Tipps.


    Meine /opt/bootlocal.sh sieht jetzt so aus

    Meine /usr/local/etc/init.d/ThoDaBox_start.sh sieht so aus

    Bash
    #!/bin/sh
    #
    #
    echo 'ThoDaBox_start gestartet' >> /mnt/mmcblk0p2/vol/ThoDaBox.log
    
    export PYTHONPATH=/mnt/mmcblk0p2/vol/lib/python3.8/site-packages:$PYTHONPATH
    
    sudo DISPLAY=:0 python3 /mnt/mmcblk0p2/vol/ThoDaBox.py >> sudo /mnt/mmcblk0p2/v>
    
    echo 'ThoDaBox_start beendet' >> /mnt/mmcblk0p2/vol/ThoDaBox.log

    Die .log-Datei ist nach dem reboot leider auch leer. Also anscheinend wird mein ThoDaBox_start.sh nicht ausgeführt.

    Natürlich beides persistent gespeichert über filetool.sh -b und nach reboot geprüft das alles genau so vorhanden ist.

    Wenn ich meine /usr/local/etc/init.d/ThoDaBox_start.sh manuell über ssh sudo sh /usr/local/etc/init.d/ThoDaBox_start.sh starte läuft alles so wie es soll. Auch noch, wenn ich mein ssh Vebindung trenne, läuft noch alles wie gewünscht weiter.


    Ich habe es auch mit folgender /opt/bootlocal.sh versucht:

    Ich bin noch nicht dazu gekommen mit das 1h17m Video:

    Hier gibt es nochmal eine beschreibe dazu.

    anzuschauen. Dazu hatte ich bisher noch keine Zeit.

  • na was ist denn wenn du nur mal das

    Quote

    5. Make the Script Persistent:

    If you reboot the Raspberry Pi, you would lose this python script. If you want to make it persistent, following these steps –

    5.1 Use the following command to add the “python_scripts” directory in the list of file/directories that should be backed up by “filetool.sh” script –

    Code
    sudo echo '/home/tc/python_scripts' >> /opt/.filetool.lst

    5.2 (optional Step) If you want to trigger this script on system startup, add it to “bootlocal.sh” file using the following command –

    Code
    sudo echo 'sudo python /home/tc/python_scripts/led_blinker.py' >> /opt/bootlocal.sh

    5.3 Save the persistent data using the following command –

    Code
    filetool.sh -b

    After this step, if you reboot your Raspberry Pi you should not lose the “led_blinker.py” script.

    ohne schnicki schnack ausführst?

  • Hallo keepfear ,

    ich habe es fast genau so gemacht wie in deinem Beispiel (hatte ich auch schon gelesen und probiert, gerade nochmal genau so probiert) nur mit meinem Script ThoDaBox.py und dem Unterschied das bei mir der Befehl python durch python3 ersetzt werden muss.


    Leider mal wieder ohne Erfolg.


    Also bisher was das "weiteste" was ich bisher erreicht hatte, dass das Script als Prozess schon läuft, der Prozess aber angehalten ist, bis ich mich über ssh einlogge. Dann läuft der Prozess sofort von alleine los und alles läuft.


    Das habe ich so erreicht, in dem ich mein ThoDaBox_start.sh in den Pfad /etc/profile.d kopiert habe.

    Ich weiß grad ehrlich nicht mehr weiter.

  • Hi keepfear ,


    danke schon mal. Ja hab auch nicht verstanden warum man sich da anmelden muss und habe es auch noch nicht gemacht. Ich habe das Betriebssystem nicht unbdingt ausgewählt. Mir geht es um den piCorePlayer. Der bringt das als Image direkt mir. Sonst muss ich wirklich mal schauen ob ich das auch anders lösen kann. Mir geht es in erster Linie darum einen LMS Media Player zu bekommen der schnell bootet, Deezer und Spotify unterstützt und den ich dann per RFID Tags steuern kann.

    In den Recherchen dazu bin ich auf den piCorePlayer gestoßen, weil der als einziger auch Deezer unterstützt.


    Danke dir schon mal. Ich probier noch ein wenig rum 8o