On Thu Dec 30 10, Pawel Jakub Dawidek wrote:
> Author: pjd
> Date: Thu Dec 30 18:06:31 2010
> New Revision: 216823
> URL: http://svn.freebsd.org/changeset/base/216823
> 
> Log:
>   For compatibility with Linux and Solaris add poweroff(8).

any thoughts on adding a 'shutdown -c' switch for compatibility reasons?
right now the only way to revert a scheduled shutdown is to send a sigterm.
'shutdown -c' would provide an easier way and in addition to that using
'shutdown -c reason', admins could issue a notice to users why a scheduled
shutdown was aborted.

this is the explanation for the -c option from the linux shutdown(8) manual:

"-c
    Cancel an already running shutdown. With this option it is of course not
    possible to give the time argument, but you can enter a explanatory message
    on the command line that will be sent to all users."

cheers.
alex

>   
>   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.
>   
>   MFC after:  2 weeks
> 
> Modified:
>   head/sbin/shutdown/Makefile
>   head/sbin/shutdown/shutdown.8
>   head/sbin/shutdown/shutdown.c
> 
> Modified: head/sbin/shutdown/Makefile
> ==============================================================================
> --- head/sbin/shutdown/Makefile       Thu Dec 30 16:56:20 2010        
> (r216822)
> +++ head/sbin/shutdown/Makefile       Thu Dec 30 18:06:31 2010        
> (r216823)
> @@ -3,6 +3,8 @@
>  
>  PROG=        shutdown
>  MAN= shutdown.8
> +LINKS=       ${BINDIR}/shutdown ${BINDIR}/poweroff
> +MLINKS=      shutdown.8 poweroff.8
>  
>  BINOWN=      root
>  BINGRP=      operator
> 
> Modified: head/sbin/shutdown/shutdown.8
> ==============================================================================
> --- head/sbin/shutdown/shutdown.8     Thu Dec 30 16:56:20 2010        
> (r216822)
> +++ head/sbin/shutdown/shutdown.8     Thu Dec 30 18:06:31 2010        
> (r216823)
> @@ -28,11 +28,12 @@
>  .\"     @(#)shutdown.8       8.2 (Berkeley) 4/27/95
>  .\" $FreeBSD$
>  .\"
> -.Dd December 23, 2008
> +.Dd December 30, 2010
>  .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
> @@ -173,6 +175,13 @@ When run without options, the  
>  utility will place the system into single user mode at the 
>  .Ar time
>  specified.
> +.Pp
> +Calling utility as
> +.Nm poweroff
> +is equivalent of calling:
> +.Bd -literal -offset indent
> +shutdown -p now
> +.Ed
>  .Sh FILES
>  .Bl -tag -width /var/run/nologin -compact
>  .It Pa /var/run/nologin
> 
> Modified: head/sbin/shutdown/shutdown.c
> ==============================================================================
> --- head/sbin/shutdown/shutdown.c     Thu Dec 30 16:56:20 2010        
> (r216822)
> +++ head/sbin/shutdown/shutdown.c     Thu Dec 30 18:06:31 2010        
> (r216823)
> @@ -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);
>  }

-- 
a13x
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to