summaryrefslogtreecommitdiff
path: root/src/login/inhibit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/inhibit.c')
-rw-r--r--src/login/inhibit.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/login/inhibit.c b/src/login/inhibit.c
index 7c48e7cee..3ea5124b3 100644
--- a/src/login/inhibit.c
+++ b/src/login/inhibit.c
@@ -270,20 +270,13 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
- pid = fork();
- if (pid < 0) {
- log_error_errno(errno, "Failed to fork: %m");
+ r = safe_fork("(inhibit)", FORK_RESET_SIGNALS|FORK_DEATHSIG|FORK_CLOSE_ALL_FDS, &pid);
+ if (r < 0) {
+ log_error_errno(r, "Failed to fork: %m");
return EXIT_FAILURE;
}
-
- if (pid == 0) {
+ if (r == 0) {
/* Child */
-
- (void) reset_all_signal_handlers();
- (void) reset_signal_mask();
-
- close_all_fds(NULL, 0);
-
execvp(argv[optind], argv + optind);
log_error_errno(errno, "Failed to execute %s: %m", argv[optind]);
_exit(EXIT_FAILURE);