From: Ben Gras Date: Thu, 11 Dec 2008 14:43:25 +0000 (+0000) Subject: Open stdin, stdout and stderr only after /etc/rc has executed. (/etc/rc X-Git-Tag: v3.1.4~194 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/nslookup.html?a=commitdiff_plain;h=e9f0c576a31f8ca8052d5a63d08d4059934e1df0;p=minix.git Open stdin, stdout and stderr only after /etc/rc has executed. (/etc/rc executes it itself.) This avoids keeping /dev nodes on the temporary root filesystem (initial mfs) in use unnecessarily. --- diff --git a/servers/init/init.c b/servers/init/init.c index 7d32818da..5fd15fd3e 100644 --- a/servers/init/init.c +++ b/servers/init/init.c @@ -74,11 +74,12 @@ int main(void) struct sigaction sa; struct stat stb; - if (fstat(0, &stb) < 0) { - /* Open standard input, output & error. */ - (void) open("/dev/null", O_RDONLY); - (void) open("/dev/log", O_WRONLY); - dup(1); +#define OPENFDS \ + if (fstat(0, &stb) < 0) { \ + /* Open standard input, output & error. */ \ + (void) open("/dev/null", O_RDONLY); \ + (void) open("/dev/log", O_WRONLY); \ + dup(1); \ } sigemptyset(&sa.sa_mask); @@ -123,6 +124,8 @@ int main(void) _exit(1); /* impossible, we hope */ } + OPENFDS; + /* Clear /etc/utmp if it exists. */ if ((fd = open(PATH_UTMP, O_WRONLY | O_TRUNC)) >= 0) close(fd);