X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fjob.c;h=0b6d321e991b74aafcad7b7a6110624777636e51;hp=7b20987c4adec8e8361003098f239dedc6e1d1cd;hb=0ebd74d8d9ffc4ea47cc8fe8798466bdf4e6967f;hpb=fdf20a316035779bbec469e11d73c7544acbf30f diff --git a/src/job.c b/src/job.c index 7b20987c4..0b6d321e9 100644 --- a/src/job.c +++ b/src/job.c @@ -478,14 +478,18 @@ int job_finish_and_invalidate(Job *j, bool success) { return 0; } + j->failed = !success; + log_debug("Job %s/%s finished, success=%s", j->unit->meta.id, job_type_to_string(j->type), yes_no(success)); - j->failed = !success; + if (j->failed) + j->manager->n_failed_jobs ++; + u = j->unit; t = j->type; job_free(j); - if (!success) + if (!success && j->type == JOB_START) unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "failed" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u)); /* Fail depending jobs on failure */ @@ -540,6 +544,8 @@ int job_finish_and_invalidate(Job *j, bool success) { if (other->meta.job) job_add_to_run_queue(other->meta.job); + manager_check_finished(u->meta.manager); + return 0; }