service: enter SERVICE_STOP_SIGTERM state after getting "STOPPING=1"
SERVICE_STOP would mean we're running the ExecStop command. That's not the case with "STOPPING=1". Instead we should enter the same state as if we just told the service to stop, i.e. SERVICE_STOP_SIGTERM. This fixes a bug where voluntarily exiting services would hang around in deactivating state until timeout.
This commit is contained in:
+2
-1
@@ -1227,7 +1227,8 @@ static void service_enter_stop_by_notify(Service *s) {
|
||||
if (s->timeout_stop_usec > 0)
|
||||
service_arm_timer(s, s->timeout_stop_usec);
|
||||
|
||||
service_set_state(s, SERVICE_STOP);
|
||||
/* The service told us it's stopping, so it's as if we SIGTERM'd it. */
|
||||
service_set_state(s, SERVICE_STOP_SIGTERM);
|
||||
}
|
||||
|
||||
static void service_enter_stop(Service *s, ServiceResult f) {
|
||||
|
||||
Reference in New Issue
Block a user