cronjob macht nichts

  • Guten Tag,
    wenn ich mich per crontab ein bestimmtes Python- oder Shellscript ausführe tut es einfach nichts. Andere per crontab gestartete Programme laufen problemlos und wenn ich besagtes Script manuell ausführe funktioniert auch alles, nur per crontab nicht.
    Was ist mein Fehler?

    Inhalt des Shellscripts ist nur ein Aufruf auf zwei Pythonscripte und diese lesen einen Wert aus einer von mir gebastelten Website und speichern den Wert in eine Datei.


  • crontab und Script sind geheim?

    Natürlich nicht ;)

    crontab:

    Code
    @reboot python /home/pi/gpio/temp.py &
    @reboot python /home/pi/gpio/sensor.py &
    @reboot sh /home/pi/gpio/move.sh &

    Die ersten beiden Einträge funktionieren wie oben gesagt problemlos.

    Scripte:

    Shell:

    Bash
    #!/bin/sh
    
    
             sudo python3 movement.py &
             sudo python3 movementOn.py &
             sudo python3 movementSilent.py &

    Python:


    Die beiden Scripte sind bis auf URL und Dateiname identisch.
    Automatisch zusammengefügt:


    Ansonsten mal hier gucken:

    Code
    less /var/log/syslog


    Da steht jeder Aufruf der Crontab drin

    Da hab ich nichts gefunden, aber danke trotzdem.

    Einmal editiert, zuletzt von skeiz (17. September 2015 um 20:29)

  • Wie digiart geschrieben hat:

    Die Crontab lädt nicht die komplette Umgebung des Benutzers, unter dessen User-Account sie aufgerufen wird.
    Besonders der Pfad wird nicht korrekt in die Crontab übernommen.

    Deshalb beim Aufruf innerhalb der Crontab-Definition und in dem Shell-Script, das gestartet wird, immer den Kompletten Pfad zu den Programmen/Scripten eintragen.

    Man kann, wenn man ein Script von der Crontab aufrufen lässt, dort natürlich die Daten der benötigten Umgebung eingeben, so dass man dann nicht immer für jeden externen Befehl den Pfad mit angeben muss, aber automatisch wird er nicht übergeben.

    Computer ..... grrrrrr


  • Geh nie davon aus, dass die Programme immer gefunden werden können.
    Also:
    Überall (crontab: python und sh, Shellscript: python3 und die Python-Scripts) die vollständigen absoluten Pfade angeben, so wie die Python Scripts in der crontab.

    Deshalb beim Aufruf innerhalb der Crontab-Definition und in dem Shell-Script, das gestartet wird, immer den Kompletten Pfad zu den Programmen/Scripten eintragen.

    Das hat geholfen, alles läuft.

    Vielen Dank!

Jetzt mitmachen!

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