svn commit: r194257 - head/sbin/init
Ed Schouten
ed at FreeBSD.org
Mon Jun 15 19:24:48 UTC 2009
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";
More information about the svn-src-head
mailing list