Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

When shutting down or rebooting keep trying alternate methods if the …

…first ones fail.

The order is user specified command, Dbus then hard coded halt command. Fixes #9102.
  • Loading branch information...
commit 4138b324fd7a8c7d9313859e54d4944c55e02519 1 parent a0fc086
Paul Harrison authored
Showing with 15 additions and 10 deletions.
  1. +15 −10 mythtv/programs/mythfrontend/exitprompt.cpp
View
25 mythtv/programs/mythfrontend/exitprompt.cpp
@@ -12,6 +12,7 @@
#include "mythmainwindow.h"
#include "mythscreenstack.h"
#include "mythsystem.h"
+#include "mythverbose.h"
void ExitPrompter::quit()
{
@@ -62,16 +63,18 @@ static bool DBusHalt(void)
void ExitPrompter::halt()
{
-
QString halt_cmd = gCoreContext->GetSetting("HaltCommand","");
+ int ret = -1;
+
if (!halt_cmd.isEmpty()) /* Use user specified command if it exists */
{
- myth_system(halt_cmd);
- } else if (!DBusHalt()) /* If supported, use DBus to shutdown */
- {
- myth_system("sudo /sbin/halt -p");
+ ret = myth_system(halt_cmd);
+ if (ret != 0)
+ VERBOSE(VB_IMPORTANT, "User defined HaltCommand failed, falling back to alternative methods.");
}
+ if (ret != 0 && !DBusHalt()) /* If supported, use DBus to shutdown */
+ myth_system("sudo /sbin/halt -p");
}
static bool DBusReboot(void)
@@ -118,16 +121,18 @@ static bool DBusReboot(void)
void ExitPrompter::reboot()
{
-
QString reboot_cmd = gCoreContext->GetSetting("RebootCommand","");
+ int ret = -1;
+
if (!reboot_cmd.isEmpty()) /* Use user specified command if it exists */
{
- myth_system(reboot_cmd);
- } else if (!DBusReboot()) /* If supported, use DBus to reboot */
- {
- myth_system("sudo /sbin/reboot");
+ ret = myth_system(reboot_cmd);
+ if (ret != 0)
+ VERBOSE(VB_IMPORTANT, "User defined RebootCommand failed, falling back to alternative methods.");
}
+ if (ret != 0 && !DBusReboot()) /* If supported, use DBus to reboot */
+ myth_system("sudo /sbin/reboot");
}
void ExitPrompter::handleExit()
Please sign in to comment.
Something went wrong with that request. Please try again.