summaryrefslogtreecommitdiff
path: root/cmds/svc
diff options
context:
space:
mode:
Diffstat (limited to 'cmds/svc')
-rw-r--r--cmds/svc/src/com/android/commands/svc/PowerCommand.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/cmds/svc/src/com/android/commands/svc/PowerCommand.java b/cmds/svc/src/com/android/commands/svc/PowerCommand.java
index 6ce29cb24bc6..920a52dad641 100644
--- a/cmds/svc/src/com/android/commands/svc/PowerCommand.java
+++ b/cmds/svc/src/com/android/commands/svc/PowerCommand.java
@@ -22,6 +22,7 @@ import android.os.IPowerManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.SystemClock;
+import android.os.SystemProperties;
public class PowerCommand extends Svc.Command {
public PowerCommand() {
@@ -87,7 +88,7 @@ public class PowerCommand extends Svc.Command {
// no confirm, wait till device is rebooted
pm.reboot(false, mode, true);
} catch (RemoteException e) {
- System.err.println("Failed to reboot.");
+ maybeLogRemoteException("Failed to reboot.");
}
return;
} else if ("shutdown".equals(args[1])) {
@@ -95,7 +96,7 @@ public class PowerCommand extends Svc.Command {
// no confirm, wait till device is off
pm.shutdown(false, null, true);
} catch (RemoteException e) {
- System.err.println("Failed to shutdown.");
+ maybeLogRemoteException("Failed to shutdown.");
}
return;
}
@@ -103,4 +104,14 @@ public class PowerCommand extends Svc.Command {
}
System.err.println(longHelp());
}
+
+ // Check if remote exception is benign during shutdown. Pm can be killed
+ // before system server during shutdown, so remote exception can be ignored
+ // if it is already in shutdown flow.
+ private void maybeLogRemoteException(String msg) {
+ String powerProp = SystemProperties.get("sys.powerctl");
+ if (powerProp.isEmpty()) {
+ System.err.println(msg);
+ }
+ }
}