diff --git a/src/shared/async.c b/src/shared/async.c index cb5e179cdf..b7ecb9c4b7 100644 --- a/src/shared/async.c +++ b/src/shared/async.c @@ -22,7 +22,7 @@ int asynchronous_sync(pid_t *ret_pid) { * original process ever, and a thread would do that as the process can't exit with threads hanging in blocking * syscalls. */ - r = safe_fork("(sd-sync)", FORK_RESET_SIGNALS|FORK_CLOSE_ALL_FDS, ret_pid); + r = safe_fork("(sd-sync)", FORK_RESET_SIGNALS|FORK_CLOSE_ALL_FDS|(ret_pid ? 0 : FORK_DETACH), ret_pid); if (r < 0) return r; if (r == 0) {