Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix shutdown/reboot script #24

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

AGobron
Copy link

@AGobron AGobron commented Aug 13, 2018

I noticed that the script will not shutdown/reboot the pi if emulationstation isn't running. Here's a change that fixed it for mine.

Hi, I noticed that the script will not shutdown/reboot the pi if emulationstation isn't running. Here's a change that fixed it for mine.
@arelas
Copy link

arelas commented Sep 12, 2018

I had changed mine to check for emulationstation, and skip killing it if it didn't exist. However, your way uses less code and does the job perfectly. I completely agree with this.

@Striker001
Copy link

how can i change that i am new

@madzarevic
Copy link

I'm pretty sure the "sleep 5s" is to allow the "killall emulationstation" time to finish. I did basically the same thing as you, but I kept the killall and sleep as part of the same system call, and the shutdown/restart in it's own system call. If the killall fails, you don't need to wait 5 seconds before shutting down.

@@ -16,11 +16,13 @@
#functions that handle button events
def when_pressed():
led.blink(.2,.2)
os.system("sudo killall emulationstation && sleep 5s && sudo shutdown -h now")
os.system("sudo killall emulationstation")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AGobron

Hi,

If you use killall -w emulationstation, killall will wait for the process to finish, before continuing (blocking mode), you can then remove the 5 seconds sleep below this line.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like a bad idea. From the man page: "Note that killall may wait forever if the signal was ignored, had no effect, or if the process stays in zombie state."

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@madzarevic

Never had any issues with killall -w, we use it extensively in DietPi.

If the process endless hangs killall -w then we can assume the system is unstable and should be resolved correctly, or, emulationstation has more in-depth issues.

Copy link

@madzarevic madzarevic Dec 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Fourdee I've never had any issues with killall -w either, I'm just going by the documentation. The question is what would you want to happen if there is a problem. Maybe you might want the shutdown to abort to allow further investigation. I personally would rather the pi just continue to shutdown so I don't need to go find a keyboard or get an ssh session going just to get the pi to safely shutdown without pulling the power plug and risking corruption of the SD card. Presumably there is a good chance I can still investigate any issues at a later more convenient time if I really want to, which is made much easier if the filesystem is still intact.

If I'm pushing the power button on a computer I have an expectation that it will eventually shutdown. Sure, it should do whatever cleanup is possible in a reasonable amount of time, but if it's taking too long (e.g. forever), I expect it to just give up and shutdown anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants