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.0k 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.
    • BuZzB
      BuZz administrators @cyperghost
      last edited by BuZz

      @cyperghost I think the problem is just the emulationstation.sh is being killed (which handles the restarting). Should be simple enough to avoid killing that. eg specifying the process name exactly rather than pattern matching.

      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 0
      • cyperghostC
        cyperghost @BuZz
        last edited by cyperghost

        @BuZz Please go on.... I think it is not as easy
        Because I manually lauched /opt.../ emulationstation.sh and that did not workd.
        @TMNTturtlguy discovered the /tmp thing today +1 for him

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

          @cyperghost It should be. I would guess at something like

          touch /tmp/es-restart; killall -e "/opt/retropie/supplementary/emulationstation/emulationstation"
          

          should be fine.

          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

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

            let me test...

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

              or to work with emulationstation running from any path. (eg with emulationstation-kids etc).

              touch /tmp/es-restart; pkill -f "/emulationstation$"
              

              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
                last edited by cyperghost

                Works fine

                touch /tmp/es-restart; killall -e "/opt/retropie/supplementary/emulationstation/emulationstation"
                
                1 Reply Last reply Reply Quote 0
                • cyperghostC
                  cyperghost @BuZz
                  last edited by cyperghost

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

                  pkill -f "/emulationstation$"

                  That let's restart just 2 PIDs... Does not work!

                  touch /tmp/es-restart; killall -e "/opt/retropie/supplementary/emulationstation/emulationstation"
                  

                  runs fine all 3 PIDs are up to date


                  Man ... I even wrote use the tty1 outputs. So indeed the relauch script was killed

                  BuZzB TMNTturtlguyT 2 Replies Last reply Reply Quote 0
                  • BuZzB
                    BuZz administrators @cyperghost
                    last edited by

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

                    pkill -f "/emulationstation$"

                    Worked here when I just tested.

                    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 Wait I post output in a few minutes...

                      pi@retropie:~ $ ls /tmp
                      es-restart  omxplayerdbus.root  omxplayerdbus.root.pid
                      pi@retropie:~ $ ps -a
                        PID TTY          TIME CMD
                        862 tty1     00:00:00 bash
                        867 tty1     00:00:00 bash
                        868 tty1     00:00:00 emulationstatio
                        874 tty1     00:00:00 emulationstatio
                        877 tty1     00:00:13 emulationstatio
                        990 pts/0    00:00:00 ps
                      

                      The command pkill

                      pi@retropie:~ $ pkill -f -e "/emulationstation$"
                      emulationstatio killed (pid 868)
                      emulationstatio killed (pid 877)
                      

                      check with ps -a

                      pi@retropie:~ $ ps -a
                        PID TTY          TIME CMD
                        862 tty1     00:00:00 bash
                        874 tty1     00:00:00 emulationstatio
                       1001 tty1     00:00:08 emulationstatio
                       1071 pts/0    00:00:00 ps
                      

                      worked now... sorry... but 2 PIDs alive
                      If PID 874 in my current setup will be killed than ES is wrecked.

                      Thank you

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

                        @cyperghost use ps -fa as you can't tell what they are from that. probably parent bash scripts (which is correct - they shouldn't be killed).

                        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

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

                          @BuZz @cyperghost

                          touch /tmp/es-restart; killall -e "/opt/retropie/supplementary/emulationstation/emulationstation"

                          runs fine all 3 PIDs are up to date

                          When i use this in my script, it runs the first time. The second time i try to run it, the script crashes with error "cant remove /tmp/es-restart

                          cyperghostC BuZzB 2 Replies Last reply Reply Quote 0
                          • cyperghostC
                            cyperghost
                            last edited by

                            @BuZz
                            Thank you I will remember that command!
                            Very usefull :)

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

                              @TMNTturtlguy I will check....
                              I tested all scripts 2 two 3 times... all runing fine

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

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

                                @BuZz @cyperghost

                                touch /tmp/es-restart; killall -e "/opt/retropie/supplementary/emulationstation/emulationstation"

                                When i use this in my script, it runs the first time. The second time i try to run it, the script crashes with error "cant remove /tmp/es-restart

                                because custom retropie scripts are actually run as root - ill change that I think, but just make sure you create it owned by pi for now.

                                sudo -u pi touch /tmp/es-restart
                                pkill -f "/emulationstation$"
                                

                                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 2 Replies Last reply Reply Quote 0
                                • cyperghostC
                                  cyperghost @BuZz
                                  last edited by

                                  @BuZz Solid work!
                                  Thank you

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

                                    @BuZz What is your prefered method?
                                    pkill or killall? I think pkill offers more room for changes.

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

                                      I have updated retropie-setup so user scripts will now be launched as a normal user without elevated permissions (can use sudo in a script if needed).

                                      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

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

                                        @cyperghost pkill so it can kill emulationstation running from any path.

                                        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

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

                                          @BuZz
                                          Ufff... that was hard stuff!

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

                                            @cyperghost @BuZz i updated retropie-setup and now i can't run my script, and i also cannot do anything within the retropie setup script either. I enter restropie setup, it freezes up for a bit and then exits back to the retropie menu.

                                            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.