assert(bus);
assert(suffix);
- r = bus_wait_for_jobs_new(bus, &w);
- if (r < 0)
- return log_error_errno(r, "Could not watch jobs: %m");
+ if (!arg_no_block) {
+ r = bus_wait_for_jobs_new(bus, &w);
+ if (r < 0)
+ return log_error_errno(r, "Could not watch jobs: %m");
+ }
if (arg_unit) {
switch (unit_name_to_type(arg_unit)) {
if (r < 0)
return bus_log_parse_error(r);
- r = bus_wait_for_jobs_one(w, object, arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR,
- arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
- if (r < 0)
- return r;
+ if (w) {
+ r = bus_wait_for_jobs_one(w, object, arg_quiet ? 0 : BUS_WAIT_JOBS_LOG_ERROR,
+ arg_runtime_scope == RUNTIME_SCOPE_USER ? STRV_MAKE_CONST("--user") : NULL);
+ if (r < 0)
+ return r;
+ }
if (!arg_quiet) {
log_info("Running %s as unit: %s", suffix + 1, trigger);
grep -qE "^ExecStart=.*true.*$" "/run/systemd/transient/$UNIT.service"
systemctl stop "$UNIT.socket" "$UNIT.service" || :
+UNIT="socket-no-block-$RANDOM"
+systemd-run --no-block --collect \
+ --unit="$UNIT" \
+ --socket-property=ListenStream=/proc/systemd-run-repro/socket \
+ true
+systemctl stop "$UNIT.socket" "$UNIT.service" || :
+
: "Job mode"
systemd-run --job-mode=help
(! systemd-run --job-mode=foo --scope true)