wo trage ich einen pythonskript ein damit er automatisch gestartet wird

Moderatoren: seppy, udo1toni

Antworten
Caddy
Beiträge: 117
Registriert: 16. Nov 2018 08:21

wo trage ich einen pythonskript ein damit er automatisch gestartet wird

Beitrag von Caddy »

Hallo,

in Kleinstarbeit habe ich nun meinen Pythonskript zum MQTT senden fast fertig …

dennoch ich als nicht linuxer hätte gerne gewusst:

1) wo trage ich einen Python skript ein damit er bei Neustart los läuft ?
2) wie sehe ich das er läuft?
3) wie kann ich ihn neu starten ohne den raspi zu starten
4) ist es möglich auf der Console ausgaben zu machen ? Ich habe das "Windows" raspbian drauf
5) welche Möglichkeit habe ich zu überwachen das der skript läuft
6) wie kann den skript Ihn ggf, neu starten ?


Vielen Dank

Caddy

Benutzeravatar
udo1toni
Beiträge: 13854
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: wo trage ich einen pythonskript ein damit er automatisch gestartet wird

Beitrag von udo1toni »

Je nach System musst Du dafür auf unterschiedliche Weise das Pythonscript als Dienst einrichten.

Auf einem aktuellen Raspian funktioniert das per systemd. Du legst im Verzeichnis /etc/systemd/system/ eine Datei mqttclient.service an. Dabei musst Du sudo verwenden, da das Verzeichnis root gehört:

Code: Alles auswählen

[Install]
WantedBy=multi-user.target
Type=simple

[Service]
ExecStart=/usr/bin/python /usr/local/sbin/mqttclient.py
User=openhab
Restart=always
RestartSec=10
Im Abschnitt [Service] gibst Du den absoluten Pfad zu paython und Dein Script an. User ist der User, der das Script ausführt (muss nicht zwingend openhab sein!) Die Parameternamen sind eigentlich selbsterklärend. WantedBy ist für das System wichtig, um zu entscheiden, unter welchen Umständen der Dienst gestartet werden soll (das angegebene multi-user.target sollte normal passen)

Nachdem Du die Datei angelegt hast, muss systemd dazu aufgefordert werden, diese Datei einzulesen, das geht mit dem Befehl

Code: Alles auswählen

sudo systemctl daemon-reload
Anschließend kann man den Dienst mit

Code: Alles auswählen

sudo systemctl [start|stop|restart|status|enable|disable] mqttclient.service
steuern (die Parameter in den eckigen Klammern sind exclusiv, also exakt eine dieser Varianten.]
start,stop,restart tut genau das, wobei restart eben nacheinander den Dienst stoppt und wieder startet.
status zeigt an, wie der Zustand des Dienstes ist, also z.B. ob der Dienst läuft.
enable,disable schließlich schaltet den Autostart bei Systemstart ein und aus.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten