X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fservice.c;h=6a4665a1ae7ca560474e3661438498005bd519eb;hb=a7850c7d1339b490ac021ff82c2081285ea28503;hp=d5aff990964d8969546acc16575b916cb49eec3e;hpb=2040ccf171404b709acb0ecf1d1f17b87c5d05f0;p=elogind.git diff --git a/src/core/service.c b/src/core/service.c index d5aff9909..6a4665a1a 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1699,6 +1699,10 @@ static int service_start(Unit *u) { s->main_pid_alien = false; s->forbid_restart = false; + free(s->status_text); + s->status_text = NULL; + s->status_errno = 0; + service_enter_start_pre(s); return 0; } @@ -2547,11 +2551,15 @@ static int service_dispatch_timer(sd_event_source *source, usec_t usec, void *us static int service_dispatch_watchdog(sd_event_source *source, usec_t usec, void *userdata) { Service *s = SERVICE(userdata); + char t[FORMAT_TIMESPAN_MAX]; assert(s); assert(source == s->watchdog_event_source); - log_error_unit(UNIT(s)->id, "%s watchdog timeout!", UNIT(s)->id); + log_error_unit(UNIT(s)->id, + "%s watchdog timeout (limit %s)!", + UNIT(s)->id, + format_timespan(t, sizeof(t), s->watchdog_usec, 1)); service_enter_signal(s, SERVICE_STOP_SIGTERM, SERVICE_FAILURE_WATCHDOG); return 0;