Shutdown -h now ou poweroff
-
Bonjour à tous,
je suis actuellement en train de me faire une Game Gear Recalbox. Pour cela j'utilise un Raspberry Zero W couplé à un écran MPI3508 HDMI, intégré dans une Game Gear le tout alimenté avec une pile lithium 18650.
La contrainte principale de ce projet est de garder l'esthétique de la console entièrement d'origine sans rajouter aucun bouton supplémentaire. Je dois donc mettre le nez dans les scripts afin de palier au manque de boutons. Le but étant de faire tourner uniquement les émulateurs GameBoy, GG, NES et Master Sytsem.
À ce titre, j'ai installé le script rpi-exit-emu-1b.py afin de quitter l'émulateur en cours rapidement. J'ai modifié le script en question afin de pouvoir faire un "safe shutdown" de la console.
Ma question est donc : dans le cadre d'un safe shutdown , vaut-il mieux utiliser la commande 'poweroff' ou bien la commande 'shutdown -h now', je ne saisie pas bien la différence entre les deux. Les deux solutions ont l'air de fonctionner quoique la méthode 'poweroff' semble plus brutale!
Voici mon script modifié (je n'ai que quelques notions de Python, désolé pour les puristes...) :
import RPi.GPIO as GPIO import os import time #Set Environment GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_UP) # START button GPIO.setup(25, GPIO.IN, pull_up_down=GPIO.PUD_UP) # A button GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP) # DOWN button #Code try: while True: GPIO.wait_for_edge(10, GPIO.FALLING) if GPIO.input(25) == GPIO.LOW and GPIO.input(17) == GPIO.LOW: pressedat = time.clock() while GPIO.input(10) == GPIO.LOW and GPIO.input(25) == GPIO.LOW and GPIO.input(17) == GPIO.LOW: releasedat = time.clock() if (releasedat - pressedat) >= 1: os.system("shutdown -h now") break else : pressedat = time.clock() while GPIO.input(10) == GPIO.LOW: releasedat = time.clock() if (releasedat - pressedat) >= 1: os.system("killall -9 retroarch mupen64plus fba2x scummvm &> /dev/null") #Reset Control Vars releasedat = pressedat = 0 #Cleaning Gpio ports on Error or Exit finally: GPIO.cleanup()