X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=service.c;h=86406e8041e5678c52140e82d376a1850da44728;hb=6f5e3f352778090be1e87cda0b1ada7fdaacc334;hp=21e8436661523a8605d78fa4727e1ff29c01d6f6;hpb=243b1432c6c9e2b92e9fc948e119ebd6e5f4de2b;p=elogind.git diff --git a/service.c b/service.c index 21e843666..86406e804 100644 --- a/service.c +++ b/service.c @@ -623,6 +623,10 @@ static int service_load_sysv_path(Service *s, const char *path) { /* Special setting for all SysV services */ s->valid_no_process = true; + /* Don't timeout special services during boot (like fsck) */ + if (!chars_intersect("12345", s->sysv_runlevels)) + s->timeout_usec = -1; + u->meta.load_state = UNIT_LOADED; r = 0; @@ -1461,11 +1465,12 @@ static void service_enter_restart(Service *s) { int r; assert(s); + service_enter_dead(s, true, false); + if ((r = manager_add_job(UNIT(s)->meta.manager, JOB_START, UNIT(s), JOB_FAIL, false, NULL)) < 0) goto fail; log_debug("%s scheduled restart job.", unit_id(UNIT(s))); - service_enter_dead(s, true, false); return; fail: