RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    How to restart ES from a script?

    Scheduled Pinned Locked Moved Help and Support
    scriptessystems.cfgrestart
    111 Posts 5 Posters 40.6k 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 @TMNTturtlguy
      last edited by

      @TMNTturtlguy I'm away from my pi now, will try to post something more robust later. ;-)

      • Useful topics
      • joystick-selection tool
      • rpie-art tool
      • achievements I made
      TMNTturtlguyT 1 Reply Last reply Reply Quote 1
      • cyperghostC
        cyperghost @TMNTturtlguy
        last edited by cyperghost

        @TMNTturtlguy Yes I wrote in my last post. @meleu call kills 2 PIDs - mine just one - the latest!

        I think we should create a coding section - this can run sometimes into trouble. The configuration of RetroPie can differ much from user to user. In this case we use brutal weapons to terminate ES. That's not good .... and makes user support heavier!

        @meleu
        Please check if es-restart can be alive!
        On every reboot the files are force removed! So I strongly suggest they can run into this habbit. And I just kill one PID - I think that's the SDL windows. But I'm not sure...

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

          @cyperghost said in How to restart ES from a script?:

          Attentention @meleu that kills 2 of 3 processes in my configuration!

          could you please post here the output of these commands (in this order)?:

          pgrep -lf emulationstat
          
          touch /tmp/es-restart && pkill -f "/opt/retropie/supplementary.*emulationstation([^.]|$)"
          
          pgrep -lf emulationstat
          
          • Useful topics
          • joystick-selection tool
          • rpie-art tool
          • achievements I made
          TMNTturtlguyT 1 Reply Last reply Reply Quote 0
          • TMNTturtlguyT
            TMNTturtlguy @meleu
            last edited by

            @meleu Sounds good, i have to do real work as well. I will be away from my pi all weekend, so we might have to resume this on sunday or monday.

            @cyperghost I am 99% sure that your method worked, my only concern was your statement about what happens when we update ES. I want this to work for all users as you just suggested in your latest post. This is why i tried @meleu method as it appeared to more straight forward. Problem is that now i can't run either anymore because for some reason @meleu code might have done something in the background?

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

              @TMNTturtlguy No there is no difference in mine or meleus method. Both methods can run into trouble!

              1 Reply Last reply Reply Quote 1
              • TMNTturtlguyT
                TMNTturtlguy @meleu
                last edited by

                @meleu 0_1497623338774_c353ccf3-9085-4768-aa64-e82e799d2677-image.png

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

                  @TMNTturtlguy hey bro, Linux shell is very rigorous with typing! :)

                  • use emulationstat not emulastionstat
                  • use /tmp/ not /temp
                  • Useful topics
                  • joystick-selection tool
                  • rpie-art tool
                  • achievements I made
                  TMNTturtlguyT 2 Replies Last reply Reply Quote 1
                  • TMNTturtlguyT
                    TMNTturtlguy @meleu
                    last edited by

                    @meleu sorry, i am trying to work on work and do this at the same time, i am failing! give me a second

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

                      @TMNTturtlguy Please don't get me wrong he needed the PID.
                      Edit: Sorry for that kind of work! I know you just want to help :)

                      @meleu

                      868 emulationstatio
                      874 emulationstatio
                      877 emulationstatio
                      

                      That are three PIDs
                      I kill only 877

                      output of mine
                      via echo 
                      echo $(pgrep -l -n emulationstatio | awk '!/grep/ {printf "%s ",$1}')
                      
                      results:
                      877
                      
                      I kill 877 with
                      kill 877
                      
                      after checking again I see 3 PIDs
                      868
                      874
                      1026
                      

                      your command

                      I use e param for listing:
                      pkill -f -e "/opt/retropie/supplementary.*emulationstation([^.]|$)"
                      emulationstatio killed (pid 874)
                      emulationstatio killed (pid 877)
                      

                      after

                      with:
                      pgrep -lf emulationstat
                      nothing
                      

                      So the whole system is killed!

                      1 Reply Last reply Reply Quote 0
                      • TMNTturtlguyT
                        TMNTturtlguy @meleu
                        last edited by

                        @meleu

                        0_1497623837305_527688ec-9eba-48c2-886e-2450b7154a13-image.png

                        Here is the touch line - this is the same error i get when i run from my script and what happens now when i use @cyperghost script a 2nd time. First, this is what i typed in when retropie was running properly:
                        0_1497624115417_37c5b6a5-f5de-465b-8d0e-b1b656449c04-image.png

                        And here is the outcome on the pi - no output in putty command line

                        0_1497624026016_error.png

                        running pgerp -lf emulationstat now gives no output at all.
                        when i touch a button on my controller i exit to a black screen on the pi, have to sudo reboot.

                        cyperghostC meleuM 2 Replies Last reply Reply Quote 1
                        • cyperghostC
                          cyperghost @TMNTturtlguy
                          last edited by cyperghost

                          @TMNTturtlguy Please delete /tmp/es-restart manually
                          What has OMX-Player to do with Emulationstation?

                          pleas @TMNTturtlguy
                          Try this in shell output of ps -a

                          in shell

                          echo $(pgrep -l -n emulationstatio | awk '!/grep/ {printf "%s ",$1}')
                          

                          No worries you can't make mistakes with that. That are all output commands.

                          TMNTturtlguyT 1 Reply Last reply Reply Quote 0
                          • TMNTturtlguyT
                            TMNTturtlguy @cyperghost
                            last edited by

                            @cyperghost that is the thing, i don't have a /tmp/es-restart to delete, it isn't there! I am pretty confused, when i did my attempts running touch es-restart I always got a /tmp/ file. any issues, just sudo rm and it was fixed. Now i don't see a /tmp/es-restart file, however it is retaining the error screen from @meleu script.

                            As you might be able to tell, i am not a coder, so i am really stretching here creating this stuff. It is fun, but there is a lot I don't understand. Can you provide more info on what you want me to do? Not sure what you mean by :

                            Try this in shell output of ps -a
                            in shell
                            echo $(pgrep -l -n emulationstatio | awk '!/grep/ {printf "%s ",$1}')

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

                              @TMNTturtlguy I'll sort it this evening, but when that happens with your terminal try to (maybe blindly) type reset and press enter.

                              • Useful topics
                              • joystick-selection tool
                              • rpie-art tool
                              • achievements I made
                              1 Reply Last reply Reply Quote 0
                              • cyperghostC
                                cyperghost @TMNTturtlguy
                                last edited by cyperghost

                                @TMNTturtlguy
                                connect via SSH
                                in prompt type ps -a
                                That list all process with tty1 output

                                then create the file es-restart with sudo command
                                sudo touch /tmp/es-restart

                                check existance with
                                ls /tmp

                                into the ps list... take the pid from ES with the highst number (that's the latest processes) and type
                                kill 1234 your PID here should not be 1234 ;)

                                after that

                                ps -a
                                again... What do you see?

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

                                  @cyperghost maybe ps -a | grep emulationsta can give a cleaner output for him. :)

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

                                    @meleu well that are only 2 or three more processes - clean enough but thank you ;)

                                    @TMNTturtlguy I'm also not a coder - I made my master degree in chemistry

                                    1 Reply Last reply Reply Quote 1
                                    • TMNTturtlguyT
                                      TMNTturtlguy @cyperghost
                                      last edited by

                                      @cyperghost thanks for explaining!

                                      To answer your question from the previous post - OMX is the screensaver running, part of a new update to ES.

                                      here is my output - when i ran the kill line, it killed the screensaver.
                                      0_1497625746069_0f8ea24f-92e6-4002-b41f-13d774febe71-image.png

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

                                        yes that's it...

                                        You see so it works...
                                        You killed ES with PID 941

                                        This was terminated

                                        and relaunched as new
                                        ES with PID 1500

                                        meleus script would kill
                                        938 and 941
                                        you can check with (the -e parameter shows list of killed PIDs)

                                        pkill -f -e "/opt/retropie/supplementary.*emulationstation([^.]|$)"
                                        

                                        after meleus script all emulationstation PIDs are gone >> dead!

                                        BuZzB 1 Reply Last reply Reply Quote 0
                                        • BuZzB
                                          BuZz administrators @cyperghost
                                          last edited by BuZz

                                          @cyperghost What's the problem with sending a SIGINT to all processes rather than one ?

                                          @TMNTturtlguy es-restart will get removed by the ES launch script hence why it disappears.

                                          To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                          cyperghostC 1 Reply Last reply Reply Quote 1
                                          • cyperghostC
                                            cyperghost @BuZz
                                            last edited by cyperghost

                                            @BuZz Well ... You are the coding wizard :)

                                            I think if you show us a way to solve this proper please go on.
                                            Maybe you can make this waterproof? Or tell us something behind the scene of RetroPie?
                                            Your are welcome!

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