Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jun 2009 19:24:47 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r194257 - head/sbin/init
Message-ID:  <200906151924.n5FJOlP3099050@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Mon Jun 15 19:24:47 2009
New Revision: 194257
URL: http://svn.freebsd.org/changeset/base/194257

Log:
  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.

Modified:
  head/sbin/init/init.c

Modified: head/sbin/init/init.c
==============================================================================
--- head/sbin/init/init.c	Mon Jun 15 19:17:52 2009	(r194256)
+++ head/sbin/init/init.c	Mon Jun 15 19:24:47 2009	(r194257)
@@ -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";



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906151924.n5FJOlP3099050>