service: handle abort stops with dedicated timeout

When shooting down a service with SIGABRT the user might want to have a
much longer stop timeout than on regular stops/shutdowns. Especially in
the face of short stop timeouts the time might not be sufficient to
write huge core dumps before the service is killed.

This commit adds a dedicated (Default)TimeoutAbortSec= timer that is
used when stopping a service via SIGABRT. In all other cases the
existing TimeoutStopSec= is used. The timer value is unset by default
to skip the special handling and use TimeoutStopSec= for state
'stop-watchdog' to keep the old behaviour.

If the service is in state 'stop-watchdog' and the service should be
stopped explicitly we still go to 'stop-sigterm' and re-apply the usual
TimeoutStopSec= timeout.
This commit is contained in:
Jan Klötzke
2019-04-12 17:32:52 +02:00
committed by Lennart Poettering
parent 1ace223ca7
commit dc653bf487
16 changed files with 190 additions and 9 deletions
@@ -227,6 +227,7 @@ TimeoutIdleSec=
TimeoutSec=
TimeoutStartSec=
TimeoutStopSec=
TimeoutAbortSec=
Transparent=
TriggerLimitBurst=
TriggerLimitIntervalSec=
@@ -686,6 +687,7 @@ DefaultTasksAccounting=
DefaultTasksMax=
DefaultTimeoutStartSec=
DefaultTimeoutStopSec=
DefaultTimeoutAbortSec=
DefaultTimerAccuracySec=
DumpCore=
HibernateMode=