diff options
author | Sven Eden <yamakuzure@gmx.net> | 2018-06-19 23:29:56 +0200 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-06-29 07:12:51 +0200 |
commit | f126109b3cdd134469fb1d976e81f943c90a8d4f (patch) | |
tree | 13433c913d63960569a6262dcbea88f0d1d7561d /src/login/elogind-dbus.c | |
parent | c647cf78c414606c821acd74f2db73f1b11e2ec4 (diff) |
Prep v238: fix forking of the poweroff programs in run_helper()
Diffstat (limited to 'src/login/elogind-dbus.c')
-rw-r--r-- | src/login/elogind-dbus.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/login/elogind-dbus.c b/src/login/elogind-dbus.c index fe580696b..715b28b17 100644 --- a/src/login/elogind-dbus.c +++ b/src/login/elogind-dbus.c @@ -75,23 +75,21 @@ static int bus_manager_log_shutdown( /* elogind specific helper to make HALT and REBOOT possible. */ static int run_helper(const char *helper) { - pid_t pid = 0; int r = 0; - r = safe_fork_full(helper, NULL, 0, FORK_RESET_SIGNALS|FORK_DEATHSIG|FORK_CLOSE_ALL_FDS|FORK_WAIT, &pid); + r = safe_fork_full(helper, NULL, 0, FORK_RESET_SIGNALS|FORK_REOPEN_LOG, NULL); if (r < 0) return log_error_errno(errno, "Failed to fork run %s: %m", helper); - if (pid == 0) { + if (0 == r) { /* Child */ - execlp(helper, helper, NULL); log_error_errno(errno, "Failed to execute %s: %m", helper); _exit(EXIT_FAILURE); } - return r; + return 0; } /* elogind specific executor */ @@ -152,7 +150,7 @@ int execute_shutdown_or_sleep( } /* This comes from our patched update-utmp/update-utmp.c */ - update_utmp(2, argv_utmp, m->bus); + update_utmp(2, argv_utmp); strv_free(argv_utmp); } |