Merge "send SIGTERM only once"
am: 9ead7c4a74
Change-Id: I87ac8e4402207719dd6cebb05adc0a3e1c2afbfe
diff --git a/init/service.cpp b/init/service.cpp
index ede6364..3db34db 100644
--- a/init/service.cpp
+++ b/init/service.cpp
@@ -211,7 +211,13 @@
LOG(INFO) << "Sending signal " << signal
<< " to service '" << name_
<< "' (pid " << pid_ << ") process group...";
- if (killProcessGroup(uid_, pid_, signal) == -1) {
+ int r;
+ if (signal == SIGTERM) {
+ r = killProcessGroupOnce(uid_, pid_, signal);
+ } else {
+ r = killProcessGroup(uid_, pid_, signal);
+ }
+ if (r == -1) {
PLOG(ERROR) << "killProcessGroup(" << uid_ << ", " << pid_ << ", " << signal << ") failed";
}
if (kill(-pid_, signal) == -1) {