Shutdown VM once payload finishes
Bug: 236588647
Test: atest MicrodroidTests MicrodroidHostTestCases
Change-Id: I1d9b7bd1fd23048c28f1fb554e5ded1771f666d5
diff --git a/microdroid_manager/src/main.rs b/microdroid_manager/src/main.rs
index 998b94b..15d6663 100644
--- a/microdroid_manager/src/main.rs
+++ b/microdroid_manager/src/main.rs
@@ -155,17 +155,21 @@
}
}
-fn main() {
- if let Err(e) = try_main() {
- error!("Failed with {:?}. Shutting down...", e);
- if let Err(e) = write_death_reason_to_serial(&e) {
- error!("Failed to write death reason {:?}", e);
- }
+fn main() -> Result<()> {
+ scopeguard::defer! {
+ info!("Shutting down...");
if let Err(e) = system_properties::write("sys.powerctl", "shutdown") {
error!("failed to shutdown {:?}", e);
}
- std::process::exit(1);
}
+
+ try_main().map_err(|e| {
+ error!("Failed with {:?}.", e);
+ if let Err(e) = write_death_reason_to_serial(&e) {
+ error!("Failed to write death reason {:?}", e);
+ }
+ e
+ })
}
fn try_main() -> Result<()> {