From owner-svn-src-stable@FreeBSD.ORG Fri Jul 22 00:57:37 2011 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FF7F106564A; Fri, 22 Jul 2011 00:57:37 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5ECFA8FC13; Fri, 22 Jul 2011 00:57:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p6M0vbnE092653; Fri, 22 Jul 2011 00:57:37 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p6M0vbNF092649; Fri, 22 Jul 2011 00:57:37 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201107220057.p6M0vbNF092649@svn.freebsd.org> From: Glen Barber Date: Fri, 22 Jul 2011 00:57:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r224259 - stable/8/sbin/shutdown X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jul 2011 00:57:37 -0000 Author: gjb (doc committer) Date: Fri Jul 22 00:57:37 2011 New Revision: 224259 URL: http://svn.freebsd.org/changeset/base/224259 Log: MFC 216823, 223991, 223992: 216823 (by pjd): - For compatibility with Linux and Solaris add poweroff(8). It is implemented as a hard link to shutdown(8) and it is equivalent of: # shutdown -p now While I'm here put one line of usage into one line of C code so it is easier to grep(1) and separate unrelated code with empty line. 223991: - Improvements to the shutdown(8) manual. 223992: - Remove trailing whitespace in the shutdown(8) manual. Approved by: delphij Modified: stable/8/sbin/shutdown/Makefile stable/8/sbin/shutdown/shutdown.8 stable/8/sbin/shutdown/shutdown.c Directory Properties: stable/8/sbin/shutdown/ (props changed) Modified: stable/8/sbin/shutdown/Makefile ============================================================================== --- stable/8/sbin/shutdown/Makefile Fri Jul 22 00:29:12 2011 (r224258) +++ stable/8/sbin/shutdown/Makefile Fri Jul 22 00:57:37 2011 (r224259) @@ -3,6 +3,8 @@ PROG= shutdown MAN= shutdown.8 +LINKS= ${BINDIR}/shutdown ${BINDIR}/poweroff +MLINKS= shutdown.8 poweroff.8 WARNS?= 6 Modified: stable/8/sbin/shutdown/shutdown.8 ============================================================================== --- stable/8/sbin/shutdown/shutdown.8 Fri Jul 22 00:29:12 2011 (r224258) +++ stable/8/sbin/shutdown/shutdown.8 Fri Jul 22 00:57:37 2011 (r224259) @@ -28,11 +28,12 @@ .\" @(#)shutdown.8 8.2 (Berkeley) 4/27/95 .\" $FreeBSD$ .\" -.Dd December 23, 2008 +.Dd July 13, 2011 .Dt SHUTDOWN 8 .Os .Sh NAME -.Nm shutdown +.Nm shutdown , +.Nm poweroff .Nd "close down the system at a given time" .Sh SYNOPSIS .Nm @@ -47,6 +48,7 @@ .Oc .Ar time .Op Ar warning-message ... +.Nm poweroff .Sh DESCRIPTION The .Nm @@ -81,20 +83,20 @@ If one of the .Fl p or .Fl r -is specified, +options are specified, .Nm will execute .Xr halt 8 or .Xr reboot 8 -instead of sending signal to +instead of sending a signal to .Xr init 8 . .It Fl n If the .Fl o -is specified, prevent the file system cache from being flushed by passing +option is specified, prevent the file system cache from being flushed by passing .Fl n -option to +to .Xr halt 8 or .Xr reboot 8 . @@ -104,10 +106,10 @@ This option should probably not be used. is the time at which .Nm will bring the system down and -may be the word +may be the case-insensitive word .Ar now (indicating an immediate shutdown) or -specify a future time in one of two formats: +a future time in one of two formats: .Ar +number , or .Ar yymmddhhmm , @@ -146,7 +148,7 @@ exits. .Pp At shutdown time a message is written to the system log, containing the time of shutdown, the person who initiated the shutdown and the reason. -Corresponding signal is then sent to +The corresponding signal is then sent to .Xr init 8 to respectively halt, reboot or bring the system down to single-user state (depending on the above options). @@ -168,15 +170,24 @@ file that .Nm created will be removed automatically. .Pp -When run without options, the +When run without options, the .Nm -utility will place the system into single user mode at the +utility will place the system into single user mode at the .Ar time specified. +.Pp +Calling +.Dq Nm poweroff +is equivalent to running: +.Bd -literal -offset indent +shutdown -p now +.Ed .Sh FILES .Bl -tag -width /var/run/nologin -compact .It Pa /var/run/nologin -tells login not to let anyone log in +tells +.Xr login 1 +not to let anyone log in .El .Sh COMPATIBILITY The hours and minutes in the second time format may be separated by Modified: stable/8/sbin/shutdown/shutdown.c ============================================================================== --- stable/8/sbin/shutdown/shutdown.c Fri Jul 22 00:29:12 2011 (r224258) +++ stable/8/sbin/shutdown/shutdown.c Fri Jul 22 00:57:37 2011 (r224259) @@ -115,8 +115,31 @@ main(int argc, char **argv) if (geteuid()) errx(1, "NOT super-user"); #endif + nosync = NULL; readstdin = 0; + + /* + * Test for the special case where the utility is called as + * "poweroff", for which it runs 'shutdown -p now'. + */ + if ((p = rindex(argv[0], '/')) == NULL) + p = argv[0]; + else + ++p; + if (strcmp(p, "poweroff") == 0) { + if (getopt(argc, argv, "") != -1) + usage((char *)NULL); + argc -= optind; + argv += optind; + if (argc != 0) + usage((char *)NULL); + dopower = 1; + offset = 0; + (void)time(&shuttime); + goto poweroff; + } + while ((ch = getopt(argc, argv, "-hknopr")) != -1) switch (ch) { case '-': @@ -161,6 +184,7 @@ main(int argc, char **argv) getoffset(*argv++); +poweroff: if (*argv) { for (p = mbuf, len = sizeof(mbuf); *argv; ++argv) { arglen = strlen(*argv); @@ -510,7 +534,7 @@ usage(const char *cp) if (cp != NULL) warnx("%s", cp); (void)fprintf(stderr, - "usage: shutdown [-] [-h | -p | -r | -k] [-o [-n]]" - " time [warning-message ...]\n"); + "usage: shutdown [-] [-h | -p | -r | -k] [-o [-n]] time [warning-message ...]\n" + " poweroff\n"); exit(1); }