X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fservice.c;h=3d2be96f5bd4df7dbaec6f6de04e5bf22d67b9c2;hb=ee09281729588900edc06152032a0cc09557f998;hp=34d24ffa92b54ea1eb843809d200df7a26aea9de;hpb=68b29a9fca915c83b9192790ec61189430cd5de6;p=elogind.git diff --git a/src/core/service.c b/src/core/service.c index 34d24ffa9..3d2be96f5 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -249,7 +249,7 @@ static void service_handle_watchdog(Service *s) { return; } - r = unit_watch_timer(UNIT(s), s->watchdog_usec - offset, &s->watchdog_watch); + r = unit_watch_timer(UNIT(s), CLOCK_MONOTONIC, true, s->watchdog_usec - offset, &s->watchdog_watch); if (r < 0) log_warning("%s failed to install watchdog timer: %s", UNIT(s)->id, strerror(-r)); } @@ -321,7 +321,7 @@ static char *sysv_translate_name(const char *name) { if (!(r = new(char, strlen(name) + sizeof(".service")))) return NULL; -#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) +#if defined(TARGET_DEBIAN) || defined(TARGET_ANGSTROM) if (endswith(name, ".sh")) /* Drop Debian-style .sh suffix */ strcpy(stpcpy(r, name) - 3, ".service"); @@ -368,7 +368,7 @@ static int sysv_translate_facility(const char *name, const char *filename, char "x-display-manager", SPECIAL_DISPLAY_MANAGER_SERVICE, "null", NULL, -#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) +#if defined(TARGET_DEBIAN) || defined(TARGET_ANGSTROM) "mail-transport-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET, #endif @@ -990,7 +990,7 @@ static int service_load_sysv_name(Service *s, const char *name) { /* For SysV services we strip the rc.* and *.sh * prefixes/suffixes. */ -#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) +#if defined(TARGET_DEBIAN) || defined(TARGET_ANGSTROM) if (endswith(name, ".sh.service")) return -ENOENT; #endif @@ -1013,7 +1013,7 @@ static int service_load_sysv_name(Service *s, const char *name) { r = service_load_sysv_path(s, path); -#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU) || defined(TARGET_ANGSTROM) +#if defined(TARGET_DEBIAN) || defined(TARGET_ANGSTROM) if (r >= 0 && UNIT(s)->load_state == UNIT_STUB) { /* Try Debian style *.sh source'able init scripts */ strcat(path, ".sh"); @@ -1599,7 +1599,8 @@ static int service_coldplug(Unit *u) { k = s->deserialized_state == SERVICE_AUTO_RESTART ? s->restart_usec : s->timeout_start_usec; - if ((r = unit_watch_timer(UNIT(s), k, &s->timer_watch)) < 0) + r = unit_watch_timer(UNIT(s), CLOCK_MONOTONIC, true, k, &s->timer_watch); + if (r < 0) return r; } } @@ -1744,7 +1745,7 @@ static int service_spawn( } if (timeout && s->timeout_start_usec) { - r = unit_watch_timer(UNIT(s), s->timeout_start_usec, &s->timer_watch); + r = unit_watch_timer(UNIT(s), CLOCK_MONOTONIC, true, s->timeout_start_usec, &s->timer_watch); if (r < 0) goto fail; } else @@ -1899,7 +1900,7 @@ static void service_enter_dead(Service *s, ServiceResult f, bool allow_restart) !set_contains(s->restart_ignore_status.signal, INT_TO_PTR(s->main_exec_status.status))) ) { - r = unit_watch_timer(UNIT(s), s->restart_usec, &s->timer_watch); + r = unit_watch_timer(UNIT(s), CLOCK_MONOTONIC, true, s->restart_usec, &s->timer_watch); if (r < 0) goto fail; @@ -2012,7 +2013,7 @@ static void service_enter_signal(Service *s, ServiceState state, ServiceResult f if (wait_for_exit) { if (s->timeout_stop_usec > 0) { - r = unit_watch_timer(UNIT(s), s->timeout_stop_usec, &s->timer_watch); + r = unit_watch_timer(UNIT(s), CLOCK_MONOTONIC, true, s->timeout_stop_usec, &s->timer_watch); if (r < 0) goto fail; } @@ -2262,7 +2263,7 @@ static void service_enter_restart(Service *s) { /* Don't restart things if we are going down anyway */ log_info("Stop job pending for unit, delaying automatic restart."); - r = unit_watch_timer(UNIT(s), s->restart_usec, &s->timer_watch); + r = unit_watch_timer(UNIT(s), CLOCK_MONOTONIC, true, s->restart_usec, &s->timer_watch); if (r < 0) goto fail;