From 43273e33a38d313f43b4c39526f773c828d82b8b Mon Sep 17 00:00:00 2001 From: Ed Schouten Date: Mon, 15 Jun 2009 19:24:47 +0000 Subject: [PATCH] Remove redundant code from runshutdown() now tcsetsid(3) works reliably. We can now just call setctty() without any problems. This means the shell running the shutdown script is now the session leader, just like on startup. --- sbin/init/init.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/sbin/init/init.c b/sbin/init/init.c index baf29bbd21af..8629b90890cf 100644 --- a/sbin/init/init.c +++ b/sbin/init/init.c @@ -1563,30 +1563,13 @@ runshutdown(void) shell = get_shell(); if ((pid = fork()) == 0) { - int fd; - - /* Assume that init already grab console as ctty before */ - sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = SIG_IGN; sigaction(SIGTSTP, &sa, (struct sigaction *)0); sigaction(SIGHUP, &sa, (struct sigaction *)0); - revoke(_PATH_CONSOLE); - if ((fd = open(_PATH_CONSOLE, O_RDWR)) == -1) - warning("can't open %s: %m", _PATH_CONSOLE); - else { - dup2(fd, 0); - dup2(fd, 1); - dup2(fd, 2); - if (fd > 2) - close(fd); - } - - /* - * Run the shutdown script. - */ + setctty(_PATH_CONSOLE); char _sh[] = "sh"; char _reboot[] = "reboot";