How to restart ES from a script?
-
@BuZz There seems to be a problem with the one lost PID!
I did not update but I'm facing the same problem! -
No the first killall script runs in best condition!
All 3 PIDs are running there!touch /tmp/es-restart; killall -e "/opt/retropie/supplementary/emulationstation/emulationstation"
and I can execute @TMNTturtlguy script like usual behavior.
-
@cyperghost the pkill isn't working as it also kills a needed parent process as the pattern matches a bash line which I missed.
touch /tmp/es-restart pkill -f "/opt/retropie/supplementary/.*/emulationstation$"
should sort it
-
@cyperghost @BuZz Ok, so I did the ps -a and killed the largest emulationstatio and i can at least navigate the menus again....so yes the pkill is causing the issue,
Next issue is after the setup script update my script gives an error saying that '/opt/retropie/configs/all/emulationstation/es_systems.cfg' is write protected and the script errors out.
-
@TMNTturtlguy if your script wants to edit that file it will need to use
sudo
as user scripts are no longer run as root. -
@BuZz thanks that seems to work. New issue. When running
touch /tmp/es-restart pkill -f "/opt/retropie/supplementary/.*/emulationstation$"
the script works great, but when i press start and go to QUIT, the screen flashes back to my script and ES restarts. I can't navigate to exit or shutdown. I immediately see the script blue screen and restart ES. So this is not killing the /tmp/es-restart
-
you can please check permission of your
Restart Script
in retropiemenu.
It must be set to pi. -
@cyperghost another beginner questions, how do i check that?
-
@TMNTturtlguy
Because the sh und rp files are called via bash. I'm not 100% sure if this can cause errors. if you never entered SSH as root it's very unlikely you have the wrong permission set.Sorry late here
ls -al
in retropiemenue -
@cyperghost everything is set to pi
-
@TMNTturtlguy @cyperghost @BuZz so i can confirm that
touch /tmp/es-restart pkill -f "/opt/retropie/supplementary/.*/emulationstation$"
Is still not killing all 3 PID. I had to go in and kill, when i did this i got the same blue screen with error text as i posted above using @meleu script. I just tried running this with sudo in front, same effect. Once it is run, entering into the start menu and the retropie menu causes me to immediately flash to the script screen and then restart ES.
-
@TMNTturtlguy it's not supposed to kill all the processes - 2 are scripts to launch es which should be left running. Also see above regarding using ps so you can see the full names.
-
-
@BuZz @cyperghost when I killed 1162 from the above list, ES restated and now everything is functioning correctly. I then ran my script again, it worked, pressed start and went to menu, quit, and same thing occurs, a flash of my script menu and an restart of ES. This time i kill the highest number of ES, Es restarts and i get a message that /tmp/es-restart cannot be removed. Is this a permissions issue within the script? I am running the latest
touch
restart command from above with sudo now and it has no affect.Edit: i added tried this:
touch /tmp/es-restart pkill -f "/opt/retropie/supplementary/.*/emulationstation$" sudo rm /tmp/es-restart
This gets rid of the auto restart, but when I go to start, quit I can now select restart, when i do this it reruns the my script and defaults to the first option from my menu. I don't get the can't remove /tmp/es-restart message anymore. When i kill the largest number emulationstatio it exits to the same blue screen with weird text as posted above. The sudo rm /tmp/es-restart everything is back to normal again.
-
wazzup guys!
in front of my RetroPie it is a way easier! Here is my one liner to restart ES with no issues (at least it works fine here):
touch /tmp/es-restart && pkill -f "/opt/retropie/supplementary/.*/emulationstation([^.]|$)"
Yes, the only difference is those
/
chars before and after.*
in the regex. It's working fine thanks to this commit on RetroPie-Setup.That one liner is able to restart ES even if the user is running a testing ES branch ( @TMNTturtlguy knows what I'm saying) and/or the user launched ES with some
--arguments
.@TMNTturtlguy I hope it helps you.
Cheers!
-
@meleu thank you! Unfortunately we just left for a family weekend and I won't be home until Sunday evening. I will test it out right away. Thanks again! P.s. I brought my computer with to make your mame row logo! Will get that created and send you a download link!
-
I made a thread of all bash ideas oft the restart.
https://retropie.org.uk/forum/topic/11050/restart-es-via-bash-script/ -
@meleu why
"/opt/retropie/supplementary/.*/emulationstation([^.]|$)"
rather than"/opt/retropie/supplementary/.*/emulationstation$"
? A use case I have missed ? -
@BuZz yep. If the user launch emulationstation with some
--argument
the regex ending withemulationstation$
don't match. :-)Example:
emulationstation --debug
-
@meleu aha. Thanks. Didn't consider that.
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.