diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/job.c | 8 | ||||
-rw-r--r-- | src/unit.c | 2 |
2 files changed, 9 insertions, 1 deletions
@@ -385,6 +385,9 @@ int job_run_and_invalidate(Job *j) { case JOB_START: r = unit_start(j->unit); + + /* If this unit cannot be started, then simply + * wait */ if (r == -EBADR) r = 0; break; @@ -402,6 +405,11 @@ int job_run_and_invalidate(Job *j) { case JOB_STOP: r = unit_stop(j->unit); + + /* If this unit cannot stopped, then simply + * wait. */ + if (r == -EBADR) + r = 0; break; case JOB_RELOAD: diff --git a/src/unit.c b/src/unit.c index 410ff9f607..a619727f96 100644 --- a/src/unit.c +++ b/src/unit.c @@ -1386,9 +1386,9 @@ bool unit_job_is_applicable(Unit *u, JobType j) { case JOB_VERIFY_ACTIVE: case JOB_START: + case JOB_STOP: return true; - case JOB_STOP: case JOB_RESTART: case JOB_TRY_RESTART: return unit_can_start(u); |