diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-04-16 03:07:38 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-04-16 03:07:38 +0200 |
commit | e02cd6f7e039b020a2782c61ea7a84c3ad85ca17 (patch) | |
tree | 075160f7e88dbf0eb41e5615d60c5b143b7a2aa9 /src | |
parent | hostnamed: add reference to SMBIOS specs (diff) | |
download | systemd-e02cd6f7e039b020a2782c61ea7a84c3ad85ca17.tar.xz systemd-e02cd6f7e039b020a2782c61ea7a84c3ad85ca17.zip |
job: also print status messages when we successfully started a unit
Diffstat (limited to 'src')
-rw-r--r-- | src/job.c | 53 |
1 files changed, 47 insertions, 6 deletions
@@ -476,6 +476,52 @@ int job_run_and_invalidate(Job *j) { return r; } +static void job_print_status_message(Unit *u, JobType t, JobResult result) { + assert(u); + + if (t == JOB_START) { + + switch (result) { + + case JOB_DONE: + unit_status_printf(u, "Started %s.\n", unit_description(u)); + break; + + case JOB_FAILED: + unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "failed" ANSI_HIGHLIGHT_OFF ", see 'systemctl status %s' for details.\n", unit_description(u), u->meta.id); + break; + + case JOB_DEPENDENCY: + unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "aborted" ANSI_HIGHLIGHT_OFF " because a dependency failed.\n", unit_description(u)); + break; + + case JOB_TIMEOUT: + unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); + break; + + default: + ; + } + + } else if (t == JOB_STOP) { + + switch (result) { + + case JOB_TIMEOUT: + unit_status_printf(u, "Stopping %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); + break; + + case JOB_DONE: + case JOB_FAILED: + unit_status_printf(u, "Stopped %s.\n", unit_description(u)); + break; + + default: + ; + } + } +} + int job_finish_and_invalidate(Job *j, JobResult result) { Unit *u; Unit *other; @@ -512,12 +558,7 @@ int job_finish_and_invalidate(Job *j, JobResult result) { t = j->type; job_free(j); - if (result == JOB_FAILED && t == JOB_START) - unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "failed" ANSI_HIGHLIGHT_OFF ", see 'systemctl status %s' for details.\n", unit_description(u), u->meta.id); - else if (result == JOB_TIMEOUT && t == JOB_START) - unit_status_printf(u, "Starting %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); - else if (result == JOB_TIMEOUT && t == JOB_STOP) - unit_status_printf(u, "Stopping %s " ANSI_HIGHLIGHT_ON "timed out" ANSI_HIGHLIGHT_OFF ".\n", unit_description(u), u->meta.id); + job_print_status_message(u, t, result); /* Fail depending jobs on failure */ if (result != JOB_DONE) { |