2017-12-22 19 views
0

Ich schrieb ein Python-Skript, das einige Daten in eine TXT-Datei mit dem absoluten Pfad /home/pi/foo.txt durch Tastendruck protokolliert, die Interrupts auslösen. Ich habe das Skript mehrmals über die Kommandozeile ohne Probleme gestartet: Wenn Sie go drücken, geht es, und wenn Sie auf stop drücken, stoppt es. Das Skript befindet sich in /home/pi/log.py. Ich schrieb ein Shell-Skript, das diese Python-Skript wird ausgeführt, weil ich gelesen, dass es auf einem Tutorial helfen kann, so nennen wir es log.sh welche jedochRaspberry Pi Crontab und Interrupts in Python

#! /bin/sh 
cd /home/pi 
/usr/bin/python /home/pi/log.py 

nennt, wenn ich dieses Skript durch crontab zu starten versuchen, durch Zugabe zu meinem

@reboot log.sh 

wird das Skript ausgeführt, aber keine Taste drückt das Skript zu stoppen (auch bekannt als Stopp-Taste wird nicht funktionieren). Die CPU-Nutzung steigt auf 100% und bleibt dort hängen. Ich habe versucht, die Umgebungsvariablen aus meiner Benutzerumgebung in crontab zu kopieren und einzufügen, aber das wird auch nicht funktionieren.

Irgendwelche Ideen?

+0

Können Sie uns Ihr Skript zeigen? Wie haben Sie versucht, dieses Problem zu beheben? Es kann hilfreich sein, einige "print" -Anweisungen in Ihren Code einzufügen. Wo haben Sie den 'cron'-Eintrag hinzugefügt (' @reboot log.sh')? Wenn es als "root" ausgeführt wird, haben Sie versucht, Ihr Skript manuell als "root" auszuführen (oder machen Sie das schon)? – larsks

Antwort

1

Ich habe auf die harte Tour gelernt, dass die von crontab verwendete Umgebung nicht mit der Umgebung des Benutzers übereinstimmt.

Schauen Sie sich diese Stapel über Fluss für weitere Informationen über Umwelt Unterschied zwischen Benutzer und crontab: https://serverfault.com/questions/698577/why-is-the-cron-env-different-from-the-users-env/698635

Das Beste, was meiner Meinung nach zu tun, alles zu tun, nur in Python. Es gibt eine Python-Umgebung, die sich wie crontab verhält. Es heißt Zeitplan (https://pypi.python.org/pypi/schedule).

Ich benutze es tatsächlich in einem Himbeer-Pi-Thermostat-Projekt. überprüfen Sie es hier: https://github.com/mababio/raspi_thermostat/blob/c6aea6ded6874d0dc21ded34f07874dd7f97dd15/src/thermo/test/jobs.py