From owner-FreeBSD-tech-jp@jp.freebsd.org  Thu Jan 18 15:29:14 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id PAA65334;
	Thu, 18 Jan 2001 15:29:14 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from home.bsdclub.org (home.bsdclub.org [202.227.26.94])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id PAA65329
	for <FreeBSD-tech-jp@jp.freebsd.org>; Thu, 18 Jan 2001 15:29:12 +0900 (JST)
	(envelope-from aki@DEBUG.gr.jp)
Received: from localhost (localhost.bsdclub.org [127.0.0.1]) by home.bsdclub.org (8.9.3/3.7W) with ESMTP
	id PAA96965; Thu, 18 Jan 2001 15:29:06 +0900 (JST)
To: FreeBSD-tech-jp@jp.freebsd.org
In-Reply-To: <20010118.145811.05143235.tshiozak@astec.co.jp>
References: <20010118142956C.aki@v.ai.bsdclub.org>
	<20010118144524E.aki@v.ai.bsdclub.org>
	<20010118.145811.05143235.tshiozak@astec.co.jp>
X-Mailer: Mew version 1.94.2 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
From: Akihiro IIJIMA <aki@DEBUG.gr.jp>
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <20010118153336S.aki@v.ai.bsdclub.org>
Date: Thu, 18 Jan 2001 15:33:36 +0900
X-Dispatcher: imput version 20000228(IM140)
Lines: 81
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-tech-jp 3019
Subject: [FreeBSD-tech-jp 3019] Re: Ctrl+alt+DEL and APM
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: aki@DEBUG.gr.jp

 > $B$H$J$C$F$$$k$N$G(B howto$B$NCM$K$+$+$o$i$:(B 
> >                 psignal(initproc, SIGINT);
 > $B$r<B9T$7$F(B $B$=$l$K$h$C$F:F5/F0$7$F$k$@$1$J5$$,$7$^$9!#(B
> 
> $B@K$7$$$G$9$J!#(B
> kernel $B$NCf$+$i%j%V!<%H$9$k>l9g!"(B
>   - shutdown_nice $B$r$h$S$@$9$H!"(B
>       - $B$I$&=*N;$9$k$+$r!"%+!<%M%kFb$NJQ?t(B shutdown_howto $B$K=q$$$H$/!#(B
>       - $B0lEY(B /sbin/init $B$K(B SIGINT $B$rEj$2$k!#(B
>     $B$H$$$&Fs$D$N=hM}$r$9$k!#$"$H$O0lEY$[$C$H$/!#(B

$B$J!<$k$[$I$M!<!#?<$$!#(B

>   - /sbin/init $B$,(B signal $B<u$1<h$C$F(B rc.shutdown $B$J$I$N=hM}$r$9$k(B
>   - $B:G8e$K(B /sbin/init $B$,(B reboot(2) $B$r$?$?$/(B

$B$H$$$&$o$1$G(B /usr/src/sbin/init/init.c $B$rFI$s$G$_$^$7$?!#(B

$B$?$7$+$K(B $B$3$&$$$&ItJ,$O$"$k$N$G$9$,(B
	if (Reboot) {
		/* Instead of going single user, let's reboot the machine */
		sync();
		alarm(2);
		pause();
		reboot(howto);
		_exit(0);
	}
$B$3$l(B
/*
 * Bring the system up single user.
 */
state_func_t  single_user() {

$B$H$$$&4X?t$NCf$G$9!#(B
$B$J$s$+(B $B0c$&$h$&$J5$$b$9$k$7(B $B$3$3$G(B reboot(howto)$B$G(B $B;XDj$7$F$k$N$G(B

>  - $B7k6I%+!<%M%k$N(B boot() $B$,8F$P$l$F!"$5$C$-$N(B shutdown_howto $B$,(B

$B$5$C$-$N(B shutdown_howto $B$,;H$o$l$J$$$h$&$J5$$b$7$^$9!#(B
$B!t(B $B$=$C$A$r$^$@(B $BFI$s$G$^$;$s$1$I!#(B

$B$G(B $BJL$N$H$3$m$r8+$?$N$G$9$,(B
/*
 * Catch a signal and request a state transition.
 */
void
transition_handler(sig)
	int sig;
{

	switch (sig) {
	case SIGHUP:
		requested_transition = clean_ttys;
		break;
	case SIGUSR2:
		howto = RB_POWEROFF;
	case SIGUSR1:
		howto |= RB_HALT;
	case SIGINT:
		Reboot = TRUE;
	case SIGTERM:
		requested_transition = death;
		break;
	case SIGTSTP:
		requested_transition = catatonia;
		break;
	default:
		requested_transition = 0;
		break;
	}
}
$B$3$&$$$&ItJ,$,$"$j$^$7$?!#(B

kernel$BFb$+$i(B 
> >                 psignal(initproc, SIGINT);
$B$r<B9T$7$?$C$F$3$H$O(B  $B$3$3$N(B
	case SIGINT:
		Reboot = TRUE;
$B$K0z$C3]$+$k$N$G$O$J$$$G$7$g$&$+!)(B
--
	$BHSEg(B $B><Gn(B (Akihiro Iijima) aki@DEBUG.gr.jp
