We'll get a SIGCHLD so no need to double-fork - sinit - suckless init | |
git clone git://git.suckless.org/sinit | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 314b062efc5961bc3743df484a5cea9e7e62181f | |
parent 11333316755b558ba963ad7b8a6b169f762fadfa | |
Author: sin <[email protected]> | |
Date: Fri, 7 Feb 2014 21:06:13 +0000 | |
We'll get a SIGCHLD so no need to double-fork | |
Diffstat: | |
M sinit.c | 7 ------- | |
1 file changed, 0 insertions(+), 7 deletions(-) | |
--- | |
diff --git a/sinit.c b/sinit.c | |
@@ -113,7 +113,6 @@ sigreboot(void) | |
static void | |
spawn(const Arg *arg) | |
{ | |
- int status; | |
pid_t pid; | |
char *const *p = arg->v; | |
@@ -121,16 +120,10 @@ spawn(const Arg *arg) | |
if (pid < 0) { | |
weprintf("sinit: fork:"); | |
} else if (pid == 0) { | |
- pid = fork(); | |
- if (pid < 0) | |
- weprintf("sinit: fork:"); | |
- else if (pid > 0) | |
- exit(0); | |
setsid(); | |
setpgid(0, 0); | |
execvp(*p, p); | |
weprintf("sinit: execvp %s:", p); | |
_exit(errno == ENOENT ? 127 : 126); | |
} | |
- waitpid(pid, &status, 0); | |
} |