diff options
Diffstat (limited to 'sbin/reboot/reboot.c')
-rw-r--r-- | sbin/reboot/reboot.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sbin/reboot/reboot.c b/sbin/reboot/reboot.c index 0bb8482..be3c81b 100644 --- a/sbin/reboot/reboot.c +++ b/sbin/reboot/reboot.c @@ -77,8 +77,11 @@ main(argc, argv) } else howto = 0; lflag = nflag = qflag = 0; - while ((ch = getopt(argc, argv, "lnpq")) != -1) + while ((ch = getopt(argc, argv, "dlnpq")) != -1) switch(ch) { + case 'd': + howto |= RB_DUMP; + break; case 'l': /* Undocumented; used by shutdown. */ lflag = 1; break; @@ -100,6 +103,8 @@ main(argc, argv) argc -= optind; argv += optind; + if ((howto & (RB_DUMP | RB_HALT)) == (RB_DUMP | RB_HALT)) + errx(1, "cannot dump (-d) when halting; must reboot instead"); if (geteuid()) { errno = EPERM; err(1, NULL); @@ -181,6 +186,7 @@ restart: void usage() { - (void)fprintf(stderr, "usage: %s [-npq]\n", dohalt ? "halt" : "reboot"); + (void)fprintf(stderr, "usage: %s [-dnpq]\n", + dohalt ? "halt" : "reboot"); exit(1); } |