pid1: add debug log about selected restart interval

This commit is contained in:
Lennart Poettering
2023-03-29 17:22:07 +02:00
parent a1d315730f
commit 8d12e219c5
+13 -10
View File
@@ -271,6 +271,7 @@ static void service_start_watchdog(Service *s) {
usec_t service_restart_usec(Service *s) {
unsigned n_restarts;
long double unit;
usec_t value;
assert(s);
@@ -286,18 +287,20 @@ usec_t service_restart_usec(Service *s) {
if (n_restarts <= 1 ||
s->restart_steps == 0 ||
s->restart_usec_max == USEC_INFINITY ||
s->restart_usec == s->restart_usec_max)
return s->restart_usec;
s->restart_usec >= s->restart_usec_max)
value = s->restart_usec;
else if (n_restarts > s->restart_steps)
value = s->restart_usec_max;
else {
/* Enforced in service_verify() and above */
assert(s->restart_usec_max > s->restart_usec);
if (n_restarts > s->restart_steps)
return s->restart_usec_max;
unit = powl(s->restart_usec_max - s->restart_usec, 1.0L / s->restart_steps);
value = usec_add(s->restart_usec, (usec_t) powl(unit, n_restarts - 1));
}
/* Enforced in service_verify() and above */
assert(s->restart_usec_max > s->restart_usec);
unit = powl(s->restart_usec_max - s->restart_usec, 1.0L / s->restart_steps);
return usec_add(s->restart_usec, (usec_t) powl(unit, n_restarts - 1));
log_unit_debug(UNIT(s), "Restart interval calculated as: %s", FORMAT_TIMESPAN(value, 0));
return value;
}
static void service_extend_event_source_timeout(Service *s, sd_event_source *source, usec_t extended) {