Zero und Crontab

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen, ich bin ein wenig ratlos, da ich schon so manches ausprobiert habe, aber ich komme nicht weiter. Ich würde gerne nach einem Reboot ein bestimmtes Programm ausführen lassen. Aber ich habe ein wenig das Gefühl, es scheitert an dem Ort der Datei oder den Rechten. Obwohl ich alles per chmod -v 777 eingestellt habe.

    Wo genau muss ich denn den crontab einrichten? Als root mit sudo? Oder als pi user? Ich würde es gerne als root machen.

    @reboot sudo python3 /home/pi/Desktop/meinprogramm.py &


    Kann mir jemand weiterhelfen?

    Grüsse und Danke

    • Offizieller Beitrag

    Hallo SeppPi,

    Obwohl ich alles per chmod -v 777 eingestellt habe.

    mach das bitte rückgängig und erzähle uns mehr von dem Pythonscript! Was macht das genau? Brauch oder erzeugt das ein GUI? Ist Netzwerk dafür nötig? usw. Siehe hier: Wie Frage ich nach Hilfe?

    • Offizieller Beitrag

    /etc/crontab modifiziert hast. Dort wird alles als root ausgefuehrt.

    Das ist so nicht ganz richtig. In der /etc/crontab (systemweite Crontab) muss der User angegeben werden, der den Cronjob ausführen soll. ;)

  • Stimmt. Danke für die Korrektur.

    I.d.R. wir aber immer ein existierender Eintrag kopiert (so mache ich es jedenfalls) und dann angepasst und alle Standardeintraege sind fuer root :shy:

    Ich bin auch der Meinung dass in /etc/crontab nur systemweite Cronjobs kontrolliert werden sollten. Wenn ein Benutzer Bedarf an Cronjobs hat kann er sie ja selbst definieren.

    • Offizieller Beitrag

    Ich zitiere mal:

    Zitat

    Dies ist besonders nützlich, wenn Server, die ihren eigenen Benutzer haben, wie z.B. Apache mit www-data, über cronjobs gesteuert werden sollen. Oder wenn man für Benutzer Jobs anlegen möchte, die der Nutzer jedoch selber nicht verändern können soll.

    Aber das nur nebenher... Lass uns wieder Back to Topic gehen. ;)

  • Hallo zusammen, Danke für die Tipps.

    Ich habe mich für den systemd Service entschieden und es auch hinbekommen. Das funktioniert.

    Mein Programm macht Bilder und reagiert auf Bewegung, speichert diese und sendet sie an eine email Adresse.

    Mit dem Autostart speichert es die Dateien nicht mehr. Zumindest nicht dort, wo das Programm auch ist. Auch wurde vorher die Zeit angegeben im Dateinamen, das ist jetzt auch nicht mehr. Woher kann das kommen?


  • Also, irgendwie ist es so, wenn ich das Programm über systemd Service starte, verhält es sich anders, als wenn ich es über Thonny ausführe.


    Dies ist der Service:

    • Offizieller Beitrag
    Zitat

    Mit dem Autostart speichert es die Dateien nicht mehr. Zumindest nicht dort, wo das Programm auch ist.

    Für die Dateien solltest Du absolute Pfade verwenden.

    //Edit

    Ggf. in der Unit auch das Arbeitsverzeichnis angeben.

    Code
    WorkingDirectory=/home/pi/Desktop
    • Offizieller Beitrag

    Hallo peter_shaw,

    das Thema ist zwar schon ein paar Tage durch, aber der Vollständigkeit wegen...

    Deine Antwort ist grundsätzlich richtig. Eine Anmerkung dazu: Ausführbar machen bringt nur etwas, wenn ein gültiger Shebang am Anfang des Skripts steht, welcher hier fehlt. ;)

    Übrigens fehlt in Deinem zweiten Code ein p in der Dateiendung.

  • ps915 29. Januar 2024 um 19:28

    Hat das Label Zero hinzugefügt.

Jetzt mitmachen!

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