Wie bei Linux eine Pythonscript im Hintergrund laufen lassen?
Ich habe ein Pythonscript (Telegram Bot) geschrieben, doch der muss natürlich immer laufen, um auf die eingehenden Nachrichten zu antworten. Wie schaffe ich es, dass er unbemerkt (z.B. wie ein Apache-Server) auf meinem Raspberry Pi unbemerkt im Hintergrund läuft?
4 Antworten
Indem Du ihn als Dienst vom Initsystem starten lässt.
Das Script sollte dann natürlich auch entsprechend gestaltet sein, z.B. in Hinblick auf Logging. Wobei es natürlich auch Werkzeuge gibt, die einem helfen ein beliebiges Executeable als daemon zu starten.
Ach, auch bei diversen anderen Initsystemen ist es kein Hexenwerk.
start-stop-daemon erledigt eigentlich alles, etwas Kleber für die Ausgabe drumherum und das wars.
mit screen oder im crontab das sind so die methoden für scripte.
Je nach Anwendungsfall stehen folgende Optionen zur Verfügung:
- In der aktuellen Shell ein Skript im Hintergrund starten mit dem Befehl ./<skript>.py &
- Das Skript zu einem bestimmten Zeitpunkt aufrufen über cron. Dazu über crontab -e einen Cronjob anlegen.
- Einen Dienst erstellen, der automatisch im Hintergrund läuft und vom init-System verwaltet wird. Dazu schaue dir einmal systemd unter Linux bzw. rc.d unter BSD an.
https://de.wikipedia.org/wiki/GNU_Screen
Das einzige was ich gefunden habe
Jau, dank systemd ist sowas echt kein Hexenwerk mehr.
Lektuere: https://wiki.ubuntuusers.de/systemd/Service_Units/