From e9f0c576a31f8ca8052d5a63d08d4059934e1df0 Mon Sep 17 00:00:00 2001 From: Ben Gras Date: Thu, 11 Dec 2008 14:43:25 +0000 Subject: [PATCH] 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. --- servers/init/init.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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); -- 2.44.0