Page 1 sur 1

démarrage auto d'une appli et fermeture / bouton poussoir

Posté : dim. 19 févr. 2017 07:48
par F5SWB
Bonjour à tous,

Voilà ce qui m'amène :

J'utilise un script qui est lancé en service au démarrage et qui me permet de quitter ou de redémarrer proprement l'OS avec un bouton poussoir.
Une fois le système en veille je peux redémarrer l'os (Jessie) avec une pression sur le bouton.
Ce que je souhaiterai faire c'est qu'à chaque boot il me lance une application puis lorsque j'appuie sur le bouton,
il kill l'appli et quitte le système ....

Mon script shutdown.py :

#!/bin/python
# Simple script for shutting down the raspberry Pi at the press of a button.
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM)
GPIO.setup(3, GPIO.IN, pull_up_down = GPIO.PUD_UP)
# Our function on what to do when the button is pressed
def Shutdown(channel): os.system("sudo shutdown -h now")
# Add our function to execute when the button pressed event happens
GPIO.add_event_detect(3, GPIO.FALLING, callback = Shutdown, bouncetime = 2000)
# Now wait!
while 1: time.sleep(1)

Mon service dans /lib/systemd/system/shutdown.service :

[Unit]
Description=Shutdown button
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/pi/shutdown.py
[Install]
WantedBy=multi-user.target

Le script que je souhaite lancer automatiquement se nomme tcademo1v15.sh, il lance une application qui s'appelle tcanim1v15.

Donc ma question ou dois-je placer le script tcademo1v15 pour qu'il se lance automatiquement à chaque démarrage,
et surtout pour que je puisse le quitter proprement après l'appui sur le bouton poussoir ?
j'ai bien essayé dans /etc/rc.local mais le pb c'est qu'il m'est impossible de quitter l'application même avec un ctrl-c ?
Le but est de ne pas avoir de clavier pour quitter d’où la nécessitée du bouton poussoir ....

Merci pour votre aide et bon dimanche :)

Re: démarrage auto d'une appli et fermeture / bouton poussoir

Posté : jeu. 16 nov. 2017 11:01
par Ferois
J'utilise un système comparable au tien, tout python.

Le bouton poussoir relie une broche GPIO à la masse. Le programme principal, lancé par une ligne dans rc.local, et que je veux pouvoir abandonner comporte :

Code : Tout sélectionner

# 
GPIO.setup(stop_prog,GPIO.IN,pull_up_down=GPIO.PUD_UP)
#
while GPIO.input(stop_prog) :
 	# corps du programme

Re: démarrage auto d'une appli et fermeture / bouton poussoir

Posté : jeu. 16 nov. 2017 12:00
par maxmed
bonjour tu peux avec rc.local
il faut cependant que tu precise que tu veux l executer en taceh de fond avec la commande nohup

example : https://openclassrooms.com/courses/repr ... riere-plan

Re: démarrage auto d'une appli et fermeture / bouton poussoir

Posté : jeu. 16 nov. 2017 12:04
par maxmed
si tu veux que ton service puisse couper un programme il te suffi d 'utiliser la librairie subprocess

https://docs.python.org/3/library/subprocess.html