Service startet nicht mehr

  • Hallo zusammen,

    bin mal wieder etwas ratlos. Ich habe ein python-Programm am laufen, das eigentlich über einen Service beim Booten/Rebooten gestartet werden muss. Das ging bis eben alle auch noch. oder sagen wir mal es ing gestern. Wie ich das meine?

    Also ich habe ein Image der SD-Karte (8GB) auf meinen Windows-PC gesichert und dait eine 2. SD-Karte bespielt. Also praktisch als Backup. Man kann ja nie wissen, wie lange so eine SD-Karte lebt.

    Was mir aufgefallen ist die eine SD-Karte hat etwas mehr Kapazität als die andere. Das war aber auch schon alles. Alte Karte: 7782400 kB, die neue 7806976 kB, also etwa 24 MByte Differenz. die neue, größere soll die kleinere ersetzen.

    Jetzt kommt das Prämomen:

    heute Morgen hat auf der neu bespielten SD-Karte alles sauber funktioniert, d.h. der Autostart meines Python-Programms lief sauber und main.py wurde ordnungsgemäß gestartet.

    da ich in der /etc/crontab noch ein paar Kleinigkeiten machen musste bzw. eine Echtzeituhr nachinstalliert habe, habe ich geringfügige Nachbesserungen am System durchgeführt. Nun scheint der unveränderte Service nicht mehr zu wollen. die Datei rfid.service steht in /etc/systemd/system/ und sieht wie folgt aus:

    [Unit]

    Description=RFID-Service

    After=network.target

    [Service]

    ExecStart=/usr/bin/python3 -u main.py

    WorkingDirectory=/home/pi

    StandardOutput=inherit

    StandardError=inherit

    Restart=always

    User=pi

    [Install]

    WantedBy=multi-user.target

    Auf dem Fluggelände, wo der Pi installiert ist, haben wir leinerlei Netzwerk oder Internet, d.h. die Büchse läuft headless und standalone.

    kann das etwas damit zu tun haben?

    Ich verstehe eigentlich die Zeile "After=network.target" nicht wirklich. Was bedeutet das genau? Bisher hat mir diese Zeile nie in die Suppe gespuckt.

    Vielleicht habt ihr ja noch Ideen, was da los sein könnte.

    Ich werde das Image von Platte noch mal auf die SD-Karte spielen aber dann verliere ich halt alle danach gemachten Änderungen. Das wurmt mich.

    • Offizieller Beitrag

    Ich verstehe eigentlich die Zeile "After=network.target" nicht wirklich. Was bedeutet das genau?

    Damit startet das Skript erst, wenn das Netzwerk vorhanden ist, bzw. funktioniert.

    Was macht diese main.py eigentlich?

  • okay, das beantworttet im Grunde schon fast meine Frage. Aber dann ergibt sich daraus die nächste. Was muss ich eintragen, damit das Programm generell ausgeführt wird, also auch ohne Netzwerk?

    wenn ich die Zeile raus lasse geht es. War das etwa schon alles?

    Habt ihr denn diese komische Erfahrung mit unterschiedlichen Größen einer SD-Karte auch schon gemacht? Wie kann ich denn da am einfachsten das Image einer großen Karte verkleinern? Immerhin ist ja noch immer etwas Platz im Filesystem frei und damit sollte das ja irgendwie machbar sein

  • Wenn du kein Netzwerk fuer dieses Skript brauchst, war es das schon. Ob du es brauchst kann ausser dir keiner beantworten, wir kennen es ja nicht.

    Und leider sind SD-Karten in dieser Beziehung Kacke. Der "richtige" Weg besteht darin, das Filesystem zu verkleinern.

    https://access.redhat.com/articles/1196333

    Das muss aber auf der Ursprungskarte passieren, denn nur dann hat das System die Chance, belegte Bloecke die inter der Grenze der 2ten Karte liegen weiter nach unten zu kopieren. Wenn nicht, droht Datenverlust.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!