X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fjob.c;h=46577fdf7a199384b50da6c19fd34e46c3feb4f1;hp=54c204b650335ec9d35be6ff5db50d1e286c2c7b;hb=c0daa706d329d6cc593949b7d150d4972289ba93;hpb=a6a9a78d95e9ba302b259f6871433f510c606308;ds=sidebyside diff --git a/src/job.c b/src/job.c index 54c204b65..46577fdf7 100644 --- a/src/job.c +++ b/src/job.c @@ -549,6 +549,13 @@ int job_finish_and_invalidate(Job *j, JobResult result) { } } + /* Trigger OnFailure dependencies that are not generated by + * the unit itself. We don't tread JOB_CANCELED as failure in + * this context. And JOB_FAILURE is already handled by the + * unit itself. */ + if (result == JOB_TIMEOUT || result == JOB_DEPENDENCY) + unit_trigger_on_failure(u); + /* Try to start the next jobs that can be started */ SET_FOREACH(other, u->meta.dependencies[UNIT_AFTER], i) if (other->meta.job)