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.
    • lostlessL
      lostless @meleu
      last edited by lostless

      @meleu I’ll take a look when I get home. Just To Verify, this is what I have running in my script. Is this the most up to date?

      #!/bin/bash
      # Terminate any emulatorcall!
      # This works just for RetroPie!
      
       emucall="$(sed -n 4p /dev/shm/runcommand.info | tr -d '\\"' | tr '^$[]*.()|+?{}' '.')"
              if [[ -n "$emucall" ]]; then
                  emupid="$(pgrep -f "$emucall")" 
                  pkill -P "$emupid"
                  kill "$emupid"
                  sleep 4
              fi    
      
      cyperghostC meleuM 2 Replies Last reply Reply Quote 0
      • cyperghostC
        cyperghost @lostless
        last edited by

        @lostless Please use the approach @meleu posted...
        The coding is the same but you don't need to modify the shutdown script itself!

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

          @lostless please, when posting a code like that put it beetween codeblocks. More info here: http://commonmark.org/help/

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

            Looks like I’m missing the “wait”at the end compared to the script I use for the reset button. I’ll add it in and see if it helps. The issue I’m having though is not meta data related. As I said. When in ES, it funtions fine. It’s just when in retroarch that it no longer exits back to ES. Kodi is fine. It was working fine until yesterday.

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

              @meleu heres the script im using now, same issue

              #!/bin/bash
              # Terminate any emulatorcall!
              # This works just for RetroPie!
              emucall="$(sed -n 4p /dev/shm/runcommand.info | tr -d '\\"' | tr '^$[]*.()|+?{}' '.')"
              # If there's an emulator running, we need to kill it and go back to ES
              if [[ -n "$emucall" ]]; then
                  emupid="$(pgrep -f "$emucall")" 
                  pkill -P "$emupid"
                  kill "$emupid"
                  wait "$emupid"
                  sleep 5 # maybe it can be lesser
              fi    
              

              and errors im getting trying to exit out of retroarch

              pkill: killing pid 1 failed: Operation not permitted
              pkill: killing pid 2 failed: Operation not permitted
              ./exit.sh: line 9: kill: `': not a pid or valid job spec
              ./exit.sh: line 10: wait: `': not a pid or valid job spec
              
              meleuM 1 Reply Last reply Reply Quote 0
              • meleuM
                meleu @lostless
                last edited by

                @lostless are you able to access your raspi via SSH while running an emulator?

                If yes, I would like to ask you to do this:

                1. launch a game.

                2. access your raspi via SSH.

                3. perform this command:

                bash -x /path/to/the/emulator/killer/script.sh 2> debug.txt
                
                1. The command above generates the debug.txt file. Post this file on ghostbin or something similar.

                Thanks.

                • 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 https://ghostbin.com/paste/qa5ph
                  Just want to say thanks for all your help.

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

                    @meleu Sorry, looks like copying from nano cut a lot off text. heres a good copy
                    https://ghostbin.com/paste/q9zsm

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

                      @lostless Thanks for this. I've found the problem. The runcommand.sh script changed a bit 3 days ago. I just have to adapt my Regular Expression and make it stronger. Wait a little, I'll try to sort it on our script.

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

                        @lostless I made my tests on a shell where there's no RetroPie installed and I believe it will work fine. But, you know, sh!t happens...

                        Try this version, please (feedback would be appreciated):

                        #!/bin/bash
                        # Terminate any emulatorcall!
                        # This works just for RetroPie!
                        emucall="$(sed -n 4p /dev/shm/runcommand.info | tr -d '\\"' | tr '^$[]*.()|+?{}' '.' | sed 's/[^ ]*=[^ ]* //g')"
                        # If there's an emulator running, we need to kill it and go back to ES
                        if [[ -n "$emucall" ]]; then
                            emupid="$(pgrep -f "$emucall")" 
                            pkill -P "$emupid"
                            kill "$emupid"
                            wait "$emupid"
                            sleep 5 # maybe it can be lesser
                        fi
                        

                        maybe I'll try to simplify that crazy line with a simpler regex later... ;-)

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

                          @meleu Its working in retroarch now im going to patch in into my mauseberry shutdown script!!!!!!!!!!!!!! YOU ARE THE MAN
                          But kodi is not working
                          https://ghostbin.com/paste/uqo6e
                          debug of kodi not exiting.
                          not a big deal if kodi does not work. Just kind of want my reset button to be the end all to go back to ES.

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

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

                            But kodi is not working

                            Here it goes another version, trying to get kodi too:

                            # Terminate any emulatorcall!
                            # This works just for RetroPie!
                            emucall="$(sed -n 4p /dev/shm/runcommand.info | tr -d '\\"' | tr '^$[]*.()|+?{}' '.' | sed 's/[^ ]*=[^ ]* //g')"
                            # 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
                            
                            • Useful topics
                            • joystick-selection tool
                            • rpie-art tool
                            • achievements I made
                            cyperghostC 1 Reply Last reply Reply Quote 1
                            • lostlessL
                              lostless
                              last edited by

                              @meleu it works!!!!!! but now it looks like i blew out the gpio pin for my reset button. NOOOOOOOOOOOOOOOOO. That what i get for using a different build without gpio setup. GPIO DANGEROUS TO USE if not setup?

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

                                @lostless sorry, I didn't understand your last question...

                                • 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 has nothing to do with the script. that works . i was testing with another memory card without my gpio setup so i had 3.3v through a 10k resistor to the gpio. i think i burned out my gpio pins
                                  Permissions issue I think. Reinstalled and gpio is now working

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

                                    @meleu ;) So you see ... PID numbers are better to handle ;)
                                    But I think in the kodi-case a simple pkill kodi would be better. Or am I wrong? Sorry I never will get the result as I never will install Kodi on my Pi alongside with RetroPie ;)

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

                                      @lostless hey man, would you be kind enough to test this version?:

                                      #!/bin/bash
                                      # the "sed" command below isn't a crypted message, it's just a Regular Expression
                                      # If you are very curious, feel free to ask.
                                      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
                                      

                                      Thanks in advance.

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

                                        @meleu sorry, not working
                                        debug output

                                        /home/pi/exit.sh: line 4: unexpected EOF while looking for matching `)'
                                        /home/pi/exit.sh: line 14: syntax error: unexpected end of file
                                        
                                        meleuM 1 Reply Last reply Reply Quote 0
                                        • meleuM
                                          meleu @lostless
                                          last edited by meleu

                                          @lostless ooops! my fault. I edited the script above fixing the problem. can you please try again.

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

                                            @meleu all good.

                                            meleuM 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.