Fehler in Autostart

  • Hallo Freunde,


    ich habe versucht mein Programm mit folgendem Quellcode automatisch starten zu lassen.

    den Autostart habe ich nach folgender Anleitung ausgeführt https://tutorials-raspberrypi.…utostart-programm-skript/


    jedoch bekomme ich folgende Fehlermeldung beim starten


    Code
    sudo /etc/init.d/NameDesSkripts start
    noip wird gestartet
      File "/home/pi/spreader.py", line 22
        self.distance_left.configure(text = f'X: {sensor_value[0]} cm')
                                                                     ^
    SyntaxError: invalid syntax

    hat jemand eine Idee woran es liegt?

    Das Programm funktioniert ohne Autostart einwandfrei


    Bin dankbar für jede Hilfe

  • Syntaxfehler, steht ja da. Das Kapitälchen zeigt auf das Hochkomma als Fehlerursache.

    Versions- oder Zeichensatzproblem.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Hallo,

    Versions- oder Zeichensatzproblem.

    Ich tippe auf ein Versionsproblem. f-Strings gibt es erst seit Python 3.6 (wenn ich es noch richtig im Kopf habe).


    Also Shebang anpassen in: #!/usr/bin/env python3

    Das Programm mit 'python3' starten, falls man den Interpreter selbst beim Aufruf mit angeben will.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • danke für die schnellen antworten.


    Es lag tatsächlich an der falschen Python Version.


    Über den Befehl

    Code
    sudo /etc/init.d/NameDesSkripts start

    öffnet sich das Programm einwandfrei.


    Allerdings startet das Programm nicht nach dem booten, sowie es der Fall sein sollte.

    Habt ihr dazu auch eine Idee?

  • tk(inter) ist doch ein Grafik-Programm(tool) ?


    Ein Grafikprogramm braucht immer einen angemeldeten User (in dessen Grafikumgebung die Ausgabe erfolgt).


    Und Sys V ist durch systemd auch schon überholt, funktioniert aber teilweise über die Sys v Generatoren gerade noch.

    Entweder baust Du Dir eine systemd-User-Service-Unit, oder Du fügst Deinen Startbefehl als letzte Zeile in die .bashrc Deines Users ein.



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Moin,


    schonmal vielen Dank für deine Hilfe! Wie kann ich denn den Startbefehl in die .bshrc einfügen? Gibt es da eventuell eine Anleitung für oder könntest du das in kurzen Sätzen beschreiben.

    Habe leider noch nicht so viel Erfahrung.

  • Code
    sudo /etc/init.d/NameDesSkripts start

    öffnet sich das Programm einwandfrei.


    Allerdings startet das Programm nicht nach dem booten, sowie es der Fall sein sollte.

    Wie ist die Ausgabe von:

    Code
    systemctl is-enabled <NameDesSkripts>

    (ohne spitze Klammern)?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • Hallo,


    mir fehlt gerade die Zeit zum suchen, aber suche mal hier im Forum nach *.desktop - Datei. hyle hat dazu mal ein paar Beispiele hier gepostet.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Wie ist die Ausgabe von:

    Code
    systemctl is-enabled <NameDesSkripts>

    (ohne spitze Klammern)?

    Code
    NameDesSkripts.service is not a native service, redirecting to systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install is-enabled NameDesSkripts
    enabled
    pi@raspbe

    Anmerkung: NamedesSkripts ist der tatsächliche Name des Programms :D

  • Oder einen .desktop Eintrag in /home/pi/.config/autostart.

    So ungefähr:

  • Code
    NameDesSkripts.service is not a native service, redirecting to systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install is-enabled NameDesSkripts
    enabled
    pi@raspbe

    Anmerkung: NamedesSkripts ist der tatsächliche Name des Programms

    OK. Wie sind die Ausgaben von:

    Code
    systemctl is-active NameDesSkripts
    systemctl cat NameDesSkripts
    systemctl status NameDesSkripts

    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • OK. Wie sind die Ausgaben von:

    Code
    systemctl is-active NameDesSkripts
    systemctl cat NameDesSkripts
    systemctl status NameDesSkripts

    ?

  • Ich denke da musst Du noch nacharbeiten. (BTW: Die Zeilen in der Ausgabe sind nicht vollständig.)

    Evtl. die service-unit, mit einer timer-unit 45 Sekunden nach dem booten starten.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • wie mache ich das von #9


    Indem Du im Filebrowser auf das Textfile klickst (2x in der Voreinstellung).

    Damit die versteckte Datei (die mit einem führenden Punkt gekennzeichnet ist) angezeigt wird, musst Du den Browser auf "versteckte Dateien anzeigen" einstellen.


    Oder Du verwendest im Terminal den Editor Deines Vertrauens (nano, pico, vim ...)


    Auch in der Shell lässt sich eine Zeile an ein bestehendes Textfile anhängen. Da musst Du aber mit einem führenden "newline" beginnen.



    Servus !

    RTFM = Read The Factory Manual, oder so

  • Code
    [Unit]
    Documentation=man:systemd-sysv-generator(8)
    SourcePath=/etc/init.d/NameDesSkripts
    Description=LSB: noip server
    Before=multi-user.target
    Before=multi-user.target
    Before=multi-user.target
    Before=graphical.target

    Wie ist in deinem Start-Stop-Script (/etc/init.d/NameDesSkripts), die Zeile mit "# Required-Start:"?

    Evtl. diese mal ergänzen mit:

    Code
    $network $named $time $remote_fs

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

  • ich habe es jetzt per desktop datei versucht wie fred, dennis und hyle es vorgeschlagen haben. Bei einem Doppelklick auf die Datei öffnet sich das Programm. Nur nicht beim Starten des Rasberrys.


    So sieht die Desktop Datei aus