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
wo trage ich einen pythonskript ein damit er automatisch gestartet wird
-
- Beiträge: 117
- Registriert: 16. Nov 2018 08:21
- udo1toni
- Beiträge: 14038
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: wo trage ich einen pythonskript ein damit er automatisch gestartet wird
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:
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
Anschließend kann man den Dienst mit
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.
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
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
Code: Alles auswählen
sudo systemctl [start|stop|restart|status|enable|disable] mqttclient.service
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.2.2, LXC), mit openHABian eingerichtet