chiark / gitweb /
service: execute ExecStopPost= commands when the watchdog timeout hits
authorLennart Poettering <lennart@poettering.net>
Thu, 6 Jun 2013 07:10:12 +0000 (09:10 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 6 Jun 2013 07:10:12 +0000 (09:10 +0200)
We can assume that a service for which a watchdog timeout was triggered
is unresponsive to a clean shutdown. However, it still makes sense to
execute the post-stop cleanup commands that can be configured with
ExecStopPost=. Hence, when the timeout is hit enter STOP_SIGKILL rather
than FINAL_SIGKILL.

src/core/service.c

index e110a41..20990d2 100644 (file)
@@ -249,7 +249,7 @@ static void service_handle_watchdog(Service *s) {
         offset = now(CLOCK_MONOTONIC) - s->watchdog_timestamp.monotonic;
         if (offset >= s->watchdog_usec) {
                 log_error_unit(UNIT(s)->id, "%s watchdog timeout!", UNIT(s)->id);
-                service_enter_signal(s, SERVICE_FINAL_SIGKILL, SERVICE_FAILURE_WATCHDOG);
+                service_enter_signal(s, SERVICE_STOP_SIGKILL, SERVICE_FAILURE_WATCHDOG);
                 return;
         }