X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fprocess%2Fprocess.c;h=86c7fbbf246c374d50f1c23a637118079817a27c;hb=aa530148044a7c6d7ec7b6a32672cc69d53979b2;hp=1a16fb6312b4fb74dc8cc753806009e939bd7691;hpb=fb0fdcc59d7b0f2ed97f1894b25e4424131970f6;p=petitboot diff --git a/lib/process/process.c b/lib/process/process.c index 1a16fb6..86c7fbb 100644 --- a/lib/process/process.c +++ b/lib/process/process.c @@ -125,7 +125,10 @@ static void process_setup_stdout_child(struct process_info *procinfo) else dup2(log, STDOUT_FILENO); - dup2(log, STDERR_FILENO); + if (procinfo->process.keep_stdout && procinfo->process.add_stderr) + dup2(procinfo->stdout_pipe[1], STDERR_FILENO); + else + dup2(log, STDERR_FILENO); } static void process_finish_stdout(struct process_info *procinfo) @@ -444,3 +447,9 @@ int process_run_simple(void *ctx, const char *name, ...) return rc; } + +bool process_exit_ok(struct process *process) +{ + return WIFEXITED(process->exit_status) && + WEXITSTATUS(process->exit_status) == 0; +}