RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Mausberry Shutdown Script Doesn't Save Metadata

    Scheduled Pinned Locked Moved ControlBlock, PowerBlock & Co.
    mausberry
    251 Posts 10 Posters 96.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • meleuM
      meleu @lostless
      last edited by meleu

      @lostless please, install inotify-tools:

      sudo apt-get install inotify-tools
      

      and then try the script below:

      #!/bin/bash
      # Before using this script you need to install inotify-tools:
      #
      #    sudo apt-get install inotify-tools
      #
      # I'm just trying to help with the script logic here.
      # I DON'T HAVE A MAUSEBERRY AND DIDN'T TEST THE GPIO STUFF HERE!
      #
      #########################################################
      #  U S E   I T   A T   Y O U R   O W N   R I S K ! ! !  #
      #########################################################
      #
      # meleu - July/2017
      # kudos for @cyperghost , who is very persistent in help you guys! :-)
      
      #this is the GPIO pin connected to the lead on switch labeled OUT
      GPIOpin1=23
      
      #this is the GPIO pin connected to the lead on switch labeled IN
      GPIOpin2=24
      
      echo "$GPIOpin1" > /sys/class/gpio/export
      echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
      echo "$GPIOpin2" > /sys/class/gpio/export
      echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
      echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
      
      file="/sys/class/gpio/gpio$GPIOpin1/value"
      
      while inotifywait -qq -e modify "$file" ; do
          power="$(cat "$file")"
          [[ "$power" == 0 ]] && continue
      
          emu_command="$(sed -n 4p /dev/shm/runcommand.info)"
          [[ -n "$emu_command" ]] && pkill -f "${emu_command%% *}" && sleep 5
      
          espid=$(pgrep -f "/opt/retropie/supplementary/.*/emulationstation([^.]|$)")
          if [[ "$espid" ]]; then
              touch /tmp/es-shutdown && chown pi:pi /tmp/es-shutdown
              kill "$espid"
          fi
      
          sudo poweroff
      done
      
      • Useful topics
      • joystick-selection tool
      • rpie-art tool
      • achievements I made
      lostlessL 1 Reply Last reply Reply Quote 0
      • lostlessL
        lostless @meleu
        last edited by

        @meleu Im giving it a shot. I really don't want to reconfigure my pi, but oh what the heck. Ive only had to reconfigure 10 times or so. whats another for the most perfect script for mauseberry (or other switch) users.

        meleuM 1 Reply Last reply Reply Quote 0
        • meleuM
          meleu @lostless
          last edited by

          @lostless I edited the script, be sure to get the current one!

          • Useful topics
          • joystick-selection tool
          • rpie-art tool
          • achievements I made
          lostlessL 1 Reply Last reply Reply Quote 0
          • lostlessL
            lostless @meleu
            last edited by

            @meleu i saw that. whew.

            lostlessL 1 Reply Last reply Reply Quote 1
            • lostlessL
              lostless @lostless
              last edited by lostless

              @meleu killed all switch functionality. As in it no longer functions as a shutdown switch.

              meleuM 2 Replies Last reply Reply Quote 0
              • meleuM
                meleu @lostless
                last edited by

                @lostless OK. I'll try a little further...

                • Useful topics
                • joystick-selection tool
                • rpie-art tool
                • achievements I made
                lostlessL 1 Reply Last reply Reply Quote 0
                • lostlessL
                  lostless @meleu
                  last edited by lostless

                  @meleu i see you removed some stuff from the original script

                  while [ 1 = 1 ]; do
                  power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                  if [ $power = 0 ]; then
                  sleep 1
                  else
                  

                  that was removed. any reason to that?

                  meleuM 1 Reply Last reply Reply Quote 0
                  • meleuM
                    meleu @lostless
                    last edited by meleu

                    @lostless said in Mausberry Shutdown Script Doesn't Save Metadata:

                    that was removed. any reason to that?

                    yep. This infinite loop is consuming CPU cycles unnecessarily.

                    • Useful topics
                    • joystick-selection tool
                    • rpie-art tool
                    • achievements I made
                    lostlessL 1 Reply Last reply Reply Quote 0
                    • lostlessL
                      lostless @meleu
                      last edited by

                      @meleu that was in the original script from mauseberry. never had any issues. interesting that their code just constantly checks the gpio.

                      meleuM 1 Reply Last reply Reply Quote 0
                      • meleuM
                        meleu @lostless
                        last edited by

                        @lostless do they have a github repo or something?

                        • Useful topics
                        • joystick-selection tool
                        • rpie-art tool
                        • achievements I made
                        lostlessL 1 Reply Last reply Reply Quote 0
                        • lostlessL
                          lostless @meleu
                          last edited by

                          @meleu they don't. just the download and install instructions on their website. But heres the script you download and install.

                          echo '#!/bin/bash
                          
                          #this is the GPIO pin connected to the lead on switch labeled OUT
                          GPIOpin1=23
                          
                          #this is the GPIO pin connected to the lead on switch labeled IN
                          GPIOpin2=24
                          
                          echo "$GPIOpin1" > /sys/class/gpio/export
                          echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
                          echo "$GPIOpin2" > /sys/class/gpio/export
                          echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
                          echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
                          while [ 1 = 1 ]; do
                          power=$(cat /sys/class/gpio/gpio$GPIOpin1/value)
                          if [ $power = 0 ]; then
                          sleep 1
                          else
                          sudo poweroff
                          fi
                          done
                          
                          1 Reply Last reply Reply Quote 0
                          • meleuM
                            meleu @lostless
                            last edited by

                            @lostless said in Mausberry Shutdown Script Doesn't Save Metadata:

                            @meleu killed all switch functionality. As in it no longer functions as a shutdown switch.

                            is it killing the emulator/ES?

                            • Useful topics
                            • joystick-selection tool
                            • rpie-art tool
                            • achievements I made
                            lostlessL 1 Reply Last reply Reply Quote 0
                            • lostlessL
                              lostless @meleu
                              last edited by

                              @meleu its not doing anything.

                              meleuM 1 Reply Last reply Reply Quote 0
                              • meleuM
                                meleu @lostless
                                last edited by

                                @lostless did you install inotify-tools?

                                • Useful topics
                                • joystick-selection tool
                                • rpie-art tool
                                • achievements I made
                                lostlessL 1 Reply Last reply Reply Quote 0
                                • lostlessL
                                  lostless @meleu
                                  last edited by

                                  @meleu yes

                                  meleuM 2 Replies Last reply Reply Quote 0
                                  • meleuM
                                    meleu @lostless
                                    last edited by

                                    @lostless OK, let's try with that expensive infinite loop just to check if the inotifywait part is bugging the script. Hold on a little...

                                    • Useful topics
                                    • joystick-selection tool
                                    • rpie-art tool
                                    • achievements I made
                                    lostlessL 1 Reply Last reply Reply Quote 0
                                    • lostlessL
                                      lostless @meleu
                                      last edited by

                                      @meleu I'm trying my own Frankenste in script (taking the parts that i see may work)

                                      1 Reply Last reply Reply Quote 1
                                      • meleuM
                                        meleu @lostless
                                        last edited by meleu

                                        @lostless please, try this one:

                                        #!/bin/bash
                                        
                                        #this is the GPIO pin connected to the lead on switch labeled OUT
                                        GPIOpin1=23
                                        
                                        #this is the GPIO pin connected to the lead on switch labeled IN
                                        GPIOpin2=24
                                        
                                        echo "$GPIOpin1" > /sys/class/gpio/export
                                        echo "in" > /sys/class/gpio/gpio$GPIOpin1/direction
                                        echo "$GPIOpin2" > /sys/class/gpio/export
                                        echo "out" > /sys/class/gpio/gpio$GPIOpin2/direction
                                        echo "1" > /sys/class/gpio/gpio$GPIOpin2/value
                                        
                                        file="/sys/class/gpio/gpio$GPIOpin1/value"
                                        
                                        while true; do
                                            power="$(cat "$file")"
                                            if [[ "$power" == 0 ]];
                                                sleep 1
                                            else
                                                emu_command="$(sed -n 4p /dev/shm/runcommand.info)"
                                                [[ -n "$emu_command" ]] && pkill -f "${emu_command%% *}" && sleep 5
                                        
                                                espid=$(pgrep -f "/opt/retropie/supplementary/.*/emulationstation([^.]|$)")
                                                if [[ "$espid" ]]; then
                                                    touch /tmp/es-shutdown && chown pi:pi /tmp/es-shutdown
                                                    kill "$espid"
                                                fi
                                        
                                                sudo poweroff
                                            fi
                                        done
                                        
                                        • Useful topics
                                        • joystick-selection tool
                                        • rpie-art tool
                                        • achievements I made
                                        lostlessL 1 Reply Last reply Reply Quote 0
                                        • lostlessL
                                          lostless @meleu
                                          last edited by

                                          @meleu your new script is still doing nothing and mine worked just like the 1.2.

                                          meleuM 1 Reply Last reply Reply Quote 0
                                          • meleuM
                                            meleu @lostless
                                            last edited by

                                            @lostless helping with this blind coding is very hard. I'm giving up...

                                            • Useful topics
                                            • joystick-selection tool
                                            • rpie-art tool
                                            • achievements I made
                                            lostlessL 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.