Ik wil dat een eenvoudig Python-script op de achtergrond wordt uitgevoerd, daarom heb ik daemon test.service
geconfigureerd in / etc / systemd / system /
.
[Eenheid] Beschrijving = Test serviceAfter = multi-user.target [Service] Type = simpleExecStart = / usr / bin / python /home/pi/daemon.pyRestart=on-abort[Install[WantedBy=multi-user .target
Mijn uitvoerende script daemon.py
schakelt een LED aan die wordt bestuurd door een knop.
#! / usr / bin / pythonimport RPi.GPIO als GPIOGPIO.setmode (GPIO.BCM) # Configureer knop pinGPIO.setup (14, GPIO.IN, pull_up_down = GPIO.PUD_UP) # Configureer LED pinGPIO.setup (18, GPIO.OUT) def-knop1 (kanaal ): print "Toogle LED!" GPIO.output (18, niet GPIO.input (18)) GPIO.add_event_detect (14, GPIO.FALLING, callback = button1, bouncetime = 300) probeer: while True: passfinally: print "cleanup () GPIO's" GPIO.cleanup ( )
Nu kan ik mijn script als een service starten met systemctl start test.service
en het op dezelfde manier stoppen. Maar voor een schoon script wil ik GPIO.cleanup ()
uitvoeren voordat het script wordt gesloten door systemctl stop test.service
. Hoe kan ik dat bereiken? De eindelijk
lijkt in dit geval niet te werken ...
Ten tweede, alle gedrukte berichten zoals "Toogle LED!" kan niet worden gezien als ik systemctl status test.service
aanroep. Wordt de uitvoer ergens anders naar een ander bestand geschreven?
Bij voorbaat dank voor uw hulp!