Skript läuft nur einen Tag

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich wollte mir ein Skript schreiben, dass alle 15 Minuten ein Foto macht, so lange es zwischen 9 Uhr und 22 Uhr ist. Das klappt auch wunderbar am Tag, an dem ich das Skript starte.

    Am nächsten Tag scheint es aber nicht mehr zu klappen. Heute, Gestern und vorgestern wurde bis 12 Uhr noch kein Foto gemacht. Wenn ich das Skript stoppe und wieder starte klappt es wieder. Wo liegt denn wohl mein Fehler?

    Gruß, Tom

  • Keine Ahnung wo der Fehler liegt, aber warum nicht einfach ein Script mit der reinen Aufnahmefunktion und dann ein Cronjob:

    */15 9-21 * * *  /pfad/zum/Fotoscript

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (23. Februar 2018 um 13:59)

  • Das Programm verursacht nur 100%, wenn die if-Bedingung "False" ist. Also zwischen 22 und 9 Uhr.

    Edit:

    Tillmario such mal im Forum nach apscheduler. Ich mach sowas damit.

    http://apscheduler.readthedocs.io/en/latest/

    Edit 2:

    aber ich gib meinen Vorrednern recht. Das "time.sleep" gehört eine Ebene zurück. ggf. geht es dann, denn auch ich kann es nicht nachvollziehen.

  • Danke für eure Antworten.

    aber warum nicht einfach ein Script mit der reinen Aufnahmefunktion und dann ein Cronjob

    wusste nicht, dass es "alle 15 Minuten" geht. Habe es jetzt aber mal gemacht.

    Funktioniert aber irgendwie nicht.

    sudo nano /etc/crontab

    */15 9-21 * * *  root  /home/pi/Foto_crontab.py unten eingetragen.

    Skript geschlossen bzw. angepasst. sudo reboot Passiert nichts. (Wenn ich das Skript einzeln ausführe klappt es)

    Zwecks Ausporbierens habe ich es auch bei crontab -e eingeragen (ohne root), klappt aber auch nicht. :conf:


  • Hallo,

    kleiner Tipp noch, ich würde die Cron Einträge nicht via nano anlegen sondern mit folgendem Befehl:

    crontab -e

    mit crontab -lkann man sich wiederrum die erstellten Crontabs ansehen.

    Crontabs werden für den Benutzer angelegt, welcher den Befehl ausführt.

    Das python3 gibt den Befehl an mit welchen Programm das Skript ausgeführt werden soll.

    Wenn du im Skript schon Definieren möchtest welches Programm verwendet werden soll, verwendet man einen sogenannten Shebang. Dieser muss an erster Zeile stehen. Bsp. für Python 3:

    #!/usr/bin/python3

    Anschließend muss die Datei noch ausführbar gemacht werden...

Jetzt mitmachen!

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