Minor cleanups to shutdown(8):

- Make the -k "don't actually halt" flag incompatible with
  the halt/reboot options -h, -p, and -r.
- The -n "don't sync" option is ignored if -k is specified.
  Issue a warning message.
- Compute the actual shutdown time written to /var/run/nologin
  correctly in the case of "now" being specified.
This commit is contained in:
Joseph Koshy 1999-06-21 06:21:05 +00:00
parent 53a03d1c97
commit 1d4f4c0d21
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=48062
2 changed files with 22 additions and 5 deletions

View File

@ -30,7 +30,7 @@
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.\" @(#)shutdown.8 8.2 (Berkeley) 4/27/95 .\" @(#)shutdown.8 8.2 (Berkeley) 4/27/95
.\" $Id: shutdown.8,v 1.8 1998/12/11 10:35:38 bde Exp $ .\" $Id: shutdown.8,v 1.9 1999/01/11 09:07:42 asami Exp $
.\" .\"
.Dd Dec 11, 1998 .Dd Dec 11, 1998
.Dt SHUTDOWN 8 .Dt SHUTDOWN 8
@ -71,6 +71,9 @@ system multi-user with logins disabled (for all but super-user).
Prevent the normal Prevent the normal
.Xr sync 2 .Xr sync 2
before stopping. before stopping.
This option is ignored if
.Fl k
is specified.
.It Fl p .It Fl p
The system will turn the power off after shutdown if it can. The system will turn the power off after shutdown if it can.
.It Fl r .It Fl r
@ -105,6 +108,14 @@ is supplied as an option, the warning message is read from the standard
input. input.
.El .El
.Pp .Pp
Only one of
.Fl h ,
.Fl k ,
.Fl p ,
and
.Fl r
can be specified at a time.
.Pp
At intervals, becoming more frequent as apocalypse approaches At intervals, becoming more frequent as apocalypse approaches
and starting at ten hours before shutdown, warning messages are displayed and starting at ten hours before shutdown, warning messages are displayed
on the terminals of all users logged in. Five minutes before on the terminals of all users logged in. Five minutes before

View File

@ -42,7 +42,7 @@ static const char copyright[] =
static char sccsid[] = "@(#)shutdown.c 8.4 (Berkeley) 4/28/95"; static char sccsid[] = "@(#)shutdown.c 8.4 (Berkeley) 4/28/95";
#endif #endif
static const char rcsid[] = static const char rcsid[] =
"$Id: shutdown.c,v 1.16 1998/12/11 11:21:47 bde Exp $"; "$Id: shutdown.c,v 1.17 1999/06/18 14:26:07 ru Exp $";
#endif /* not lint */ #endif /* not lint */
#include <sys/param.h> #include <sys/param.h>
@ -151,10 +151,14 @@ main(argc, argv)
if (argc < 1) if (argc < 1)
usage(); usage();
if (doreboot + dohalt + dopower > 1) { if (killflg + doreboot + dohalt + dopower > 1) {
warnx("incompatible switches -h, -p and -r"); warnx("incompatible switches -h, -k, -p and -r");
usage(); usage();
} }
if (killflg && nosync)
warnx("option -n ignored with -k");
getoffset(*argv++); getoffset(*argv++);
if (*argv) { if (*argv) {
@ -383,12 +387,14 @@ getoffset(timearg)
time_t now; time_t now;
int this_year; int this_year;
(void)time(&now);
if (!strcasecmp(timearg, "now")) { /* now */ if (!strcasecmp(timearg, "now")) { /* now */
offset = 0; offset = 0;
shuttime = now;
return; return;
} }
(void)time(&now);
if (*timearg == '+') { /* +minutes */ if (*timearg == '+') { /* +minutes */
if (!isdigit(*++timearg)) if (!isdigit(*++timearg))
badtime(); badtime();