From 51b27e837227c8bd36f821b85387441b7713b8bd Mon Sep 17 00:00:00 2001 From: Joachim Nilsson Date: Mon, 9 Feb 2015 00:45:09 +0100 Subject: [PATCH] Revert "Use vfork() instead of fork() before exec()" This reverts commit 074686b520612a34dcc4c6ad8fd01b196f591be5. Which turned out to not work so well after all. For instance, launching TTYs in a background process completely blocked inetd services from even starting up listening sockets ... proper fork seems to work fine though. Signed-off-by: Joachim Nilsson --- helpers.c | 8 ++++---- svc.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/helpers.c b/helpers.c index 201056d3..6ec86297 100644 --- a/helpers.c +++ b/helpers.c @@ -446,7 +446,7 @@ int run(char *cmd) return 1; } - pid = vfork(); + pid = fork(); if (0 == pid) { int i; FILE *fp; @@ -565,7 +565,7 @@ int run_interactive(char *cmd, char *fmt, ...) pid_t run_getty(char *cmd, char *args[], int console) { - pid_t pid = vfork(); + pid_t pid = fork(); if (!pid) { int fd; @@ -629,7 +629,7 @@ pid_t run_getty(char *cmd, char *args[], int console) int run_parts(char *dir, char *cmd) { struct dirent **e; - volatile int i, num; + int i, num; num = scandir(dir, &e, NULL, alphasort); if (num < 0) { @@ -669,7 +669,7 @@ int run_parts(char *dir, char *cmd) } args[j++] = NULL; - pid = vfork(); + pid = fork(); if (!pid) { _d("Calling %s ...", path); sig_unblock(); diff --git a/svc.c b/svc.c index 63da2c30..ab048d2b 100644 --- a/svc.c +++ b/svc.c @@ -533,7 +533,7 @@ int svc_start(svc_t *svc) sigaddset(&nmask, SIGCHLD); sigprocmask(SIG_BLOCK, &nmask, &omask); - pid = vfork(); + pid = fork(); sigprocmask(SIG_SETMASK, &omask, NULL); if (pid == 0) { int i = 0;