From: Lennart Poettering Date: Wed, 22 Apr 2020 18:08:34 +0000 (+0200) Subject: run: don't wait for start job to complete when running interactively anyway X-Git-Tag: v246-rc1~522 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a7c71d214c37797d82de2f66cfe0a0a79c3a5c92;p=thirdparty%2Fsystemd.git run: don't wait for start job to complete when running interactively anyway Otherwise we'd not read the services input while waiting for the job to wait, and there's no point in waiting for the job anyway if we wait for the unit to stop ultimately. Fixes: #15395 --- diff --git a/src/run/run.c b/src/run/run.c index 6076eabe92e..ea49d5dab55 100644 --- a/src/run/run.c +++ b/src/run/run.c @@ -1144,7 +1144,11 @@ static int start_transient_service( assert_not_reached("Can't allocate tty via ssh"); } - if (!arg_no_block) { + /* Optionally, wait for the start job to complete. If we are supposed to read the service's stdin + * lets skip this however, because we should start that already when the start job is running, and + * there's little point in waiting for the start job to complete in that case anyway, as we'll wait + * for EOF anyway, which is going to be much later. */ + if (!arg_no_block && arg_stdio == ARG_STDIO_NONE) { r = bus_wait_for_jobs_new(bus, &w); if (r < 0) return log_error_errno(r, "Could not watch jobs: %m");