sometimes daemonizing and vfork()/exit() is ok

This commit is contained in:
Mike Frysinger 2006-06-07 21:48:30 +00:00
parent ca70774293
commit 6fb5847faf

View File

@ -23,12 +23,9 @@
#ifdef BB_NOMMU #ifdef BB_NOMMU
void vfork_daemon_rexec(int nochdir, int noclose, static void vfork_daemon_common(int nochdir, int noclose)
int argc, char **argv, char *foreground_opt)
{ {
int fd; int fd;
char **vfork_args;
int a = 0;
setsid(); setsid();
@ -41,7 +38,24 @@ void vfork_daemon_rexec(int nochdir, int noclose,
dup2(fd, STDERR_FILENO); dup2(fd, STDERR_FILENO);
if (fd > 2) if (fd > 2)
close(fd); close(fd);
} }
}
void vfork_daemon(int nochdir, int noclose)
{
vfork_daemon_common(nochdir, noclose);
if (vfork())
exit(0);
}
void vfork_daemon_rexec(int nochdir, int noclose,
int argc, char **argv, char *foreground_opt)
{
char **vfork_args;
int a = 0;
vfork_daemon_common(nochdir, noclose);
vfork_args = xcalloc(sizeof(char *), argc + 3); vfork_args = xcalloc(sizeof(char *), argc + 3);
vfork_args[a++] = "/bin/busybox"; vfork_args[a++] = "/bin/busybox";