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
2 changed files with 22 additions and 5 deletions

View File

@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)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
.Dt SHUTDOWN 8
@ -71,6 +71,9 @@ system multi-user with logins disabled (for all but super-user).
Prevent the normal
.Xr sync 2
before stopping.
This option is ignored if
.Fl k
is specified.
.It Fl p
The system will turn the power off after shutdown if it can.
.It Fl r
@ -105,6 +108,14 @@ is supplied as an option, the warning message is read from the standard
input.
.El
.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
and starting at ten hours before shutdown, warning messages are displayed
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";
#endif
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 */
#include <sys/param.h>
@ -151,10 +151,14 @@ main(argc, argv)
if (argc < 1)
usage();
if (doreboot + dohalt + dopower > 1) {
warnx("incompatible switches -h, -p and -r");
if (killflg + doreboot + dohalt + dopower > 1) {
warnx("incompatible switches -h, -k, -p and -r");
usage();
}
if (killflg && nosync)
warnx("option -n ignored with -k");
getoffset(*argv++);
if (*argv) {
@ -383,12 +387,14 @@ getoffset(timearg)
time_t now;
int this_year;
(void)time(&now);
if (!strcasecmp(timearg, "now")) { /* now */
offset = 0;
shuttime = now;
return;
}
(void)time(&now);
if (*timearg == '+') { /* +minutes */
if (!isdigit(*++timearg))
badtime();