X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fjob.c;h=206490ffbb30d2daee7e782126d65d9398ab1aca;hp=54bd4147e293753dfae99e31c4c5309a98fbec87;hb=81253930180bac6b6fb372a9c7bea724bd795c86;hpb=85f0c93a50c14cebf0be2740de64c14f27ac61b3 diff --git a/src/job.c b/src/job.c index 54bd4147e..206490ffb 100644 --- a/src/job.c +++ b/src/job.c @@ -422,10 +422,16 @@ int job_run_and_invalidate(Job *j) { break; case JOB_RELOAD_OR_START: - if (unit_active_state(j->unit) == UNIT_ACTIVE) + if (unit_active_state(j->unit) == UNIT_ACTIVE) { + j->type = JOB_RELOAD; r = unit_reload(j->unit); - else + } else { + j->type = JOB_START; r = unit_start(j->unit); + + if (r == -EBADR) + r = 0; + } break; case JOB_RESTART: { @@ -445,8 +451,10 @@ int job_run_and_invalidate(Job *j) { else if (t == UNIT_ACTIVATING) { j->type = JOB_START; r = unit_start(j->unit); - } else + } else { + j->type = JOB_RESTART; r = unit_stop(j->unit); + } break; }