From owner-freebsd-arch@FreeBSD.ORG Sat Aug 21 20:24:24 2004 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B77A16A4CE for ; Sat, 21 Aug 2004 20:24:24 +0000 (GMT) Received: from nic.ach.sch.gr (nic.sch.gr [194.63.238.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 14CEC43D45 for ; Sat, 21 Aug 2004 20:24:22 +0000 (GMT) (envelope-from keramida@ceid.upatras.gr) Received: (qmail 16960 invoked by uid 207); 21 Aug 2004 20:24:16 -0000 Received: from keramida@ceid.upatras.gr by nic by uid 201 with qmail-scanner-1.21 (sophie: 3.04/2.19/3.81. Clear:RC:1(81.186.70.28):. Processed in 2.057545 secs); 21 Aug 2004 20:24:16 -0000 Received: from dialup28.ach.sch.gr (HELO gothmog.gr) ([81.186.70.28]) (envelope-sender ) by nic.sch.gr (qmail-ldap-1.03) with DES-CBC3-SHA encrypted SMTP for ; 21 Aug 2004 20:24:13 -0000 Received: from gothmog.gr (gothmog [127.0.0.1]) by gothmog.gr (8.13.1/8.13.1) with ESMTP id i7LKMrDh084955 for ; Sat, 21 Aug 2004 23:22:53 +0300 (EEST) (envelope-from keramida@ceid.upatras.gr) Received: (from giorgos@localhost) by gothmog.gr (8.13.1/8.13.1/Submit) id i7LKMq7p084944 for freebsd-arch@freebsd.org; Sat, 21 Aug 2004 23:22:52 +0300 (EEST) (envelope-from keramida@ceid.upatras.gr) Date: Sat, 21 Aug 2004 23:22:52 +0300 From: Giorgos Keramidas To: freebsd-arch@freebsd.org Message-ID: <20040821202252.GB94336@gothmog.gr> References: <20040821191659.GA94336@gothmog.gr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040821191659.GA94336@gothmog.gr> Subject: Re: Introducing a poweroff(8) command X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Aug 2004 20:24:24 -0000 On 2004-08-21 22:16, Giorgos Keramidas wrote: > Hi guys, > > In response to PR misc/70476 about `halt -p' I wrote a simple patch to > introduce a "poweroff" command that will default to "halt -p" behavior > and inhibit the need for changing the default behavior of halt(8). > > o Does this look ok to you all? > > o Should I suggest using it as a workaround of the behavior > described in the PR? It would be nice if I also included the patch :-? %%% Add a hard link to reboot(8) called "poweroff" which defaults to the same behavior as "halt -p". Also fix a related bug while here. When called as "halt -p" the previous reboot program would not disallow the use of -d for saving kernel dumps (it would inhibit dumps without the -p option though). Index: Makefile =================================================================== RCS file: /home/ncvs/src/sbin/reboot/Makefile,v retrieving revision 1.13 diff -u -r1.13 Makefile --- Makefile 22 Mar 2004 00:52:27 -0000 1.13 +++ Makefile 21 Aug 2004 18:45:36 -0000 @@ -14,8 +14,8 @@ MLINKS+= boot_i386.8 boot.8 .endif -LINKS= ${BINDIR}/reboot ${BINDIR}/halt ${BINDIR}/reboot ${BINDIR}/fastboot \ - ${BINDIR}/reboot ${BINDIR}/fasthalt +LINKS= ${BINDIR}/reboot ${BINDIR}/halt ${BINDIR}/reboot ${BINDIR}/poweroff \ + ${BINDIR}/reboot ${BINDIR}/fastboot ${BINDIR}/reboot ${BINDIR}/fasthalt SCRIPTS= nextboot.sh Index: reboot.8 =================================================================== RCS file: /home/ncvs/src/sbin/reboot/reboot.8,v retrieving revision 1.22 diff -u -r1.22 reboot.8 --- reboot.8 9 Apr 2004 19:58:35 -0000 1.22 +++ reboot.8 17 Aug 2004 22:04:34 -0000 @@ -34,6 +34,7 @@ .Sh NAME .Nm reboot , .Nm halt , +.Nm poweroff , .Nm fastboot , .Nm fasthalt .Nd stopping and restarting the system @@ -41,6 +42,9 @@ .Nm halt .Op Fl lnqp .Op Fl k Ar kernel +.Nm poweroff +.Op Fl lnqp +.Op Fl k Ar kernel .Nm .Op Fl dlnqp .Op Fl k Ar kernel @@ -52,7 +56,8 @@ .Op Fl k Ar kernel .Sh DESCRIPTION The -.Nm halt +.Nm halt , +.Nm poweroff and .Nm utilities flush the file system cache to disk, send all running processes @@ -91,9 +96,10 @@ This option is intended for applications such as .Xr shutdown 8 , that call -.Nm -or +.Nm , .Nm halt +or +.Nm poweroff and log this themselves. .It Fl n The file system cache is not flushed. @@ -106,6 +112,9 @@ This option should probably not be used. .It Fl p The system will turn off the power if it can. +This is the default action if +.Nm poweroff +is called. If the power down action fails, the system will halt or reboot normally, depending on whether .Nm halt Index: reboot.c =================================================================== RCS file: /home/ncvs/src/sbin/reboot/reboot.c,v retrieving revision 1.20 diff -u -r1.20 reboot.c --- reboot.c 9 Apr 2004 19:58:35 -0000 1.20 +++ reboot.c 17 Aug 2004 21:55:57 -0000 @@ -70,9 +70,13 @@ char *kernel, *p; const char *user; - if (strstr((p = rindex(*argv, '/')) ? p + 1 : *argv, "halt")) { + p = rindex(*argv, '/') ? p + 1 : *argv; + if (strcmp(p, "halt") == 0) { dohalt = 1; howto = RB_HALT; + } else if (strcmp(p, "poweroff") == 0) { + dohalt = 1; + howto = RB_POWEROFF; } else howto = 0; kflag = lflag = nflag = qflag = 0; @@ -108,6 +112,8 @@ if ((howto & (RB_DUMP | RB_HALT)) == (RB_DUMP | RB_HALT)) errx(1, "cannot dump (-d) when halting; must reboot instead"); + if ((howto & (RB_DUMP | RB_POWEROFF)) == (RB_DUMP | RB_POWEROFF)) + errx(1, "cannot dump (-d) when powering off; must reboot instead"); if (geteuid()) { errno = EPERM; err(1, NULL); %%%