Re: Endlosprogramm - Ausführung beenden lassen
Verfasst: Donnerstag 20. Mai 2021, 13:55
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
So ein Linux-System hat eigens Möglichkeiten zum Management von Hintergrundprozessen (auch Daemons genannt), und ein aktuelles Raspbian nutzt dafür wie die meisten anderen Distributionen eine Software namens systemd. Dazu mußt Du nur ein sogenanntes Unitfile schreiben, es an die richtige Stelle (zum Beispiel /etc/systemd/system/) legen und es Deinem systemd-System einmalig (oder nach jeder Änderung Deines Unitfile) mit dem Kommandozeilenbefehl mit "systemctl daemon-reload" bekannt machen. Danach kannst Du die Ausführung Deines Programms mit "systemctl [Befehl] [Unitfilename]" steuern, wobei [Unitfilename] für den eindeutigen Namen Deines Unitfile steht und [Befehl] etwa "start", "stop", "enable" und "disable" sein kann. Was die ersten beiden tun, dürfte klar sein, die Befehle "enable" und "disable" werden benutzt, damit Dein Unitfile beim Booten automatisch gestartet wird ("enable") oder eben nicht ("disable"). Einen Einstieg findest Du hier: [1, 2]. Neben dem Vorteil der einheitlichen Verwaltung Deiner Hintergrundprogramme bindet systemd Dein Programm automatisch ins systemweite Logging ein; alles, was Dein Programm auf STDOUT und STDERR (Python: sys.stdout und sys.stderr) ausgibt, landet in den systemweiten Logdateien, inklusive Zeitstempel und allem drum und dran. systemd kann Dein Programm zusätzlich überwachen und es neu starten, wenn es abgestürzt ist oder (zum Beispiel vom OOM-Killer) beendet wurde.