summaryrefslogtreecommitdiff
path: root/src/job.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-07-12 02:56:17 +0200
committerLennart Poettering <lennart@poettering.net>2010-07-12 03:07:02 +0200
commit3b6fdb5b5afebc49a7e987e3e3bf7aa2615d1671 (patch)
tree70ae0f1a280a1103e2c7db9e914c7a3318ced8f7 /src/job.c
parentf6023656e10823dff9e4b9f70628b671b3f4ed96 (diff)
unit: introduce IgnoreDependencyFailure=
Diffstat (limited to 'src/job.c')
-rw-r--r--src/job.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/job.c b/src/job.c
index 7cbde80b38..8cc9d742ed 100644
--- a/src/job.c
+++ b/src/job.c
@@ -495,14 +495,16 @@ int job_finish_and_invalidate(Job *j, bool success) {
t == JOB_RELOAD_OR_START) {
SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY], i)
- if (other->meta.job &&
+ if (!other->meta.ignore_dependency_failure &&
+ other->meta.job &&
(other->meta.job->type == JOB_START ||
other->meta.job->type == JOB_VERIFY_ACTIVE ||
other->meta.job->type == JOB_RELOAD_OR_START))
job_finish_and_invalidate(other->meta.job, false);
SET_FOREACH(other, u->meta.dependencies[UNIT_REQUIRED_BY_OVERRIDABLE], i)
- if (other->meta.job &&
+ if (!other->meta.ignore_dependency_failure &&
+ other->meta.job &&
!other->meta.job->override &&
(other->meta.job->type == JOB_START ||
other->meta.job->type == JOB_VERIFY_ACTIVE ||
@@ -512,7 +514,8 @@ int job_finish_and_invalidate(Job *j, bool success) {
} else if (t == JOB_STOP) {
SET_FOREACH(other, u->meta.dependencies[UNIT_CONFLICTS], i)
- if (other->meta.job &&
+ if (!other->meta.ignore_dependency_failure &&
+ other->meta.job &&
(other->meta.job->type == JOB_START ||
other->meta.job->type == JOB_VERIFY_ACTIVE ||
other->meta.job->type == JOB_RELOAD_OR_START))