Nespi hack
-
Hello everyone I am new here in the forum and I have some doubts here, someone could help to solve this code below I picked it from the retropie used to turn off the system and respibarry in a safe way with a Power button. I've seen some topics but they usually use circuit boards different from the ones I have. see the script.
mkdir -p /bin/button
nano /bin/button/nespi.py
#!/bin/python import RPi.GPIO as GPIO import os, time GPIO.setmode(GPIO.BCM) GPIO.setup( 2, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Reset switch GPIO.setup( 3, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Power switch GPIO.setup( 5, GPIO.OUT) #ON control GPIO.output( 5, GPIO.HIGH) while True : if (GPIO.input( 3 )): time.sleep( 0.25 ) else: encho ( "Shutting down...") os.system( "shutdown -h now") break if (GPIO.input( 2 )): time.sleep( 0.25 ) else: encho ( "Resetting...") os.system( "reboot now") break
nano /etc/rc.local
python /bin/button/nespi.py &
chmod u+x /etc/rc.local
shutdown -h now
#!/bin/bash # Check if EmulationStation is running. Finish the script if doesn't. espid="$(pgrep -f "/opt/recalbox/supplementary/.*/emulationstation([^.]|$)")" || exit 0 # the "sed" command below isn't a crypted message :), it's just a trick to # make $emucall regex-safe to use in the "pgrep -f" below. emucall="$(sed '4!d; s/\([\\"]\|[[:alnum:]_]\+=[^ ]* \)//g; s/[][(){}^$*.|+? ]/\\&/g' /dev/shm/runcommand.info)" # If there's an emulator running, we need to kill it and go back to ES if [[ -n "$emucall" ]]; then emupid="$(pgrep -f "$emucall" | tr '\n' ' ')" pkill -P "$(echo $emupid | tr ' ' ',')" kill "$emupid" wait "$emupid" sleep 5 # maybe it can be lesser fi kill "$espid" wait "$espid" sleep 5 # maybe it can be lesser
/etc/killes.sh
chmod a+x /etc/killes.sh
/etc/systemd/system/killes.service
[Unit]
Description=Kill EmulationStation
After=autologin@tty1.service[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/etc/killes.sh[Install]
WantedBy=multi-user.targetsystemctl enable killes
thank you so much