Mausberry Shutdown Script Doesn't Save Metadata
-
@lostless can you please try this approach here?: https://retropie.org.uk/forum/topic/12895/ensuring-es-gracefully-finish-and-save-metadata-in-every-system-shutdown
-
@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
-
-
@lostless please, when posting a code like that put it beetween codeblocks. More info here: http://commonmark.org/help/
-
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.
-
@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
-
@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:
-
launch a game.
-
access your raspi via SSH.
-
perform this command:
bash -x /path/to/the/emulator/killer/script.sh 2> debug.txt
- The command above generates the
debug.txt
file. Post this file on ghostbin or something similar.
Thanks.
-
-
@meleu https://ghostbin.com/paste/qa5ph
Just want to say thanks for all your help. -
@meleu Sorry, looks like copying from nano cut a lot off text. heres a good copy
https://ghostbin.com/paste/q9zsm -
@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. -
@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... ;-)
-
@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. -
@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
-
@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?
-
@lostless sorry, I didn't understand your last question...
-
@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 -
@meleu ;) So you see ... PID numbers are better to handle ;)
But I think in the kodi-case a simplepkill 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 ;) -
@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.
-
@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
-
@lostless ooops! my fault. I edited the script above fixing the problem. can you please try again.
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.