summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorTom Cherry <tomcherry@google.com>2017-08-28 17:22:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2017-08-28 17:22:11 +0000
commit9bde0dc769b8085536faded5da5ebf0e1077dd92 (patch)
tree2eed9b41400114b67a68860cf1d46afb5b54936d /init
parent1f6a807bacb79fe556f6744d16211b3c4f3eb8b9 (diff)
parent702ca9ada2ac3c5d61bd7ae4e13a0e986a472fcb (diff)
downloadcore-9bde0dc769b8085536faded5da5ebf0e1077dd92.tar.gz
core-9bde0dc769b8085536faded5da5ebf0e1077dd92.tar.bz2
core-9bde0dc769b8085536faded5da5ebf0e1077dd92.zip
Merge "init: log all failures of Service::Start()"
Diffstat (limited to 'init')
-rw-r--r--init/init.cpp8
-rw-r--r--init/keychords.cpp7
-rw-r--r--init/reboot.cpp11
3 files changed, 20 insertions, 6 deletions
diff --git a/init/init.cpp b/init/init.cpp
index e1bd3a2cb..4a8459f1d 100644
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -177,7 +177,9 @@ static std::optional<boot_clock::time_point> RestartProcesses() {
auto restart_time = s->time_started() + 5s;
if (boot_clock::now() > restart_time) {
- s->Start();
+ if (auto result = s->Start(); !result) {
+ LOG(ERROR) << "Could not restart process '" << s->name() << "': " << result.error();
+ }
} else {
if (!next_process_restart_time || restart_time < *next_process_restart_time) {
next_process_restart_time = restart_time;
@@ -195,7 +197,9 @@ void handle_control_message(const std::string& msg, const std::string& name) {
}
if (msg == "start") {
- svc->Start();
+ if (auto result = svc->Start(); !result) {
+ LOG(ERROR) << "Could not ctl.start service '" << name << "': " << result.error();
+ }
} else if (msg == "stop") {
svc->Stop();
} else if (msg == "restart") {
diff --git a/init/keychords.cpp b/init/keychords.cpp
index 2ef0ce776..e686ce1e4 100644
--- a/init/keychords.cpp
+++ b/init/keychords.cpp
@@ -81,8 +81,11 @@ static void handle_keychord() {
if (adb_enabled == "running") {
Service* svc = ServiceList::GetInstance().FindService(id, &Service::keychord_id);
if (svc) {
- LOG(INFO) << "Starting service " << svc->name() << " from keychord " << id;
- svc->Start();
+ LOG(INFO) << "Starting service '" << svc->name() << "' from keychord " << id;
+ if (auto result = svc->Start(); !result) {
+ LOG(ERROR) << "Could not start service '" << svc->name() << "' from keychord " << id
+ << ": " << result.error();
+ }
} else {
LOG(ERROR) << "Service for keychord " << id << " not found";
}
diff --git a/init/reboot.cpp b/init/reboot.cpp
index 97a8ddd6f..891ca03c1 100644
--- a/init/reboot.cpp
+++ b/init/reboot.cpp
@@ -374,10 +374,17 @@ void DoReboot(unsigned int cmd, const std::string& reason, const std::string& re
if (kill_after_apps.count(s->name())) {
s->SetShutdownCritical();
} else if (to_starts.count(s->name())) {
- s->Start();
+ if (auto result = s->Start(); !result) {
+ LOG(ERROR) << "Could not start shutdown 'to_start' service '" << s->name()
+ << "': " << result.error();
+ }
s->SetShutdownCritical();
} else if (s->IsShutdownCritical()) {
- s->Start(); // start shutdown critical service if not started
+ // Start shutdown critical service if not started.
+ if (auto result = s->Start(); !result) {
+ LOG(ERROR) << "Could not start shutdown critical service '" << s->name()
+ << "': " << result.error();
+ }
}
}