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()
    

Log in to reply
 

Want to support us ?

318
Online

82.1k
Users

22.6k
Topics

163.2k
Posts