diff options
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | src/job.c | 8 | ||||
-rw-r--r-- | src/unit.c | 2 |
3 files changed, 10 insertions, 2 deletions
@@ -86,7 +86,7 @@ Pre v12: * fix hotplug transactions -* make it possible to wait for device unplug, i.e. issue "stop" on devices +* plymouth agent start loop External: @@ -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); |