X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fservice.c;h=0b54e5bfcfb760d6e09ccaa430faae0488573f57;hp=d3c750e5441b7def316c34105f4bf54f195800bf;hb=1829dc9dc5f38cd1aaa43912de56c3bb5d8b5617;hpb=ead8e4788ee31bbdc38b4cd3c6e71c8a95bbc95a diff --git a/src/service.c b/src/service.c index d3c750e54..0b54e5bfc 100644 --- a/src/service.c +++ b/src/service.c @@ -2039,6 +2039,13 @@ static void service_enter_restart(Service *s) { assert(s); dbus_error_init(&error); + if (s->meta.job) { + log_info("Job pending for unit, delaying automatic restart."); + + if ((r = unit_watch_timer(UNIT(s), s->restart_usec, &s->timer_watch)) < 0) + goto fail; + } + service_enter_dead(s, true, false); if ((r = manager_add_job(s->meta.manager, JOB_START, UNIT(s), JOB_FAIL, false, &error, NULL)) < 0)