Hallo zusammen,
ich habe mich jetzt ein wenig mit dem Autostart von Python Scripte befasst und wollte mal Eure Meinung wissen, ob das so jetzt die beste Lösung ist.
Python Script (Wenn ein Signal am GPIO 25 ankommt, wird in die Datenbank der Zähler um eins hochgezählt. Dies kann alle paar Sekunden passieren, aber auch nur einmal in der Woche):
from gpiozero import Button
from gpiozero import CPUTemperature
from signal import pause
from time import sleep
import mysql.connector
db = mysql.connector.connect(
host="****",
user="****",
password="****",
database="****"
)
cursor = db.cursor()
zeile = 1
def pressed():
cpu = CPUTemperature()
temperatur = (round(cpu.temperature, 1))
sql = "UPDATE **** SET zaehler=zaehler+1, temp = %s WHERE id = %s"
cursor.execute(sql,(temperatur, zeile))
db.commit()
btn = Button(25, pull_up=False, hold_time=0.3)
btn.when_held = pressed
sleep(3)
pause()
Display More
Bisher hatte ich 2 Möglichkeiten:
1.
in /etc/rc.local diese Zeile hinzugefügt ->
/usr/bin/python3 /home/pi/programm.py &
2.
in /etc/xdg/autostart/display.desktop ->
[Desktop Entry]
Name=programm
Exec=/usr/bin/python3 /home/pi/programm.py &
Jetzt bin ich aber auf systemd gekommen und habe unter /etc/systemd/system einen neuen Dienst mit folgendem Inhalt erstellet:
[Unit]
Description=zaehler Service
After=network.target
[Service]
Type=idle
User=pi
ExecStart=/usr/bin/python3 /home/pi/programm.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Display More
Alle 3 Möglichkeiten funktionieren und meine Frage ist nun, welche von den ist die Beste oder gibt es noch eine bessere?
Es läuft auf einem Raspberry 3 B+ (Raspbian Buster) inkl. 7" Touch-Display mit einer ScanDisk ultra 32GB.
Gruß
Tamia