svn commit: r216823 - head/sbin/shutdown
Alexander Best
arundel at freebsd.org
Fri Dec 31 01:27:04 UTC 2010
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
More information about the svn-src-head
mailing list