diff --git a/Makefile b/Makefile index 24cd6f1..622d297 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,6 @@ SRC = \ pidof.c \ pivot_root.c \ ps.c \ - reboot.c \ rmmod.c \ stat.c \ swapoff.c \ diff --git a/halt.c b/halt.c index aef6414..510e595 100644 --- a/halt.c +++ b/halt.c @@ -8,19 +8,22 @@ static void usage(void) { - eprintf("usage: %s [-p]\n", argv0); + eprintf("usage: %s [-pr]\n", argv0); } int main(int argc, char *argv[]) { - int pflag = 0; + int pflag = 0, rflag = 0; int cmd = LINUX_REBOOT_CMD_HALT; ARGBEGIN { case 'p': pflag = 1; break; + case 'r': + rflag = 1; + break; default: usage(); } ARGEND; @@ -30,11 +33,16 @@ main(int argc, char *argv[]) sync(); + if (pflag && rflag) + usage(); + if (pflag) cmd = LINUX_REBOOT_CMD_POWER_OFF; + if (rflag) + cmd = LINUX_REBOOT_CMD_RESTART; if (syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, NULL) < 0) - eprintf("reboot:"); + eprintf("halt:"); return 0; } diff --git a/reboot.c b/reboot.c deleted file mode 100644 index 8a134be..0000000 --- a/reboot.c +++ /dev/null @@ -1,32 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include -#include -#include -#include "reboot.h" -#include "util.h" - -static void -usage(void) -{ - eprintf("usage: %s\n", argv0); -} - -int -main(int argc, char *argv[]) -{ - ARGBEGIN { - default: - usage(); - } ARGEND; - - if (argc > 0) - usage(); - - sync(); - - if (syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, - LINUX_REBOOT_MAGIC2, - LINUX_REBOOT_CMD_RESTART, NULL) < 0) - eprintf("reboot:"); - return 0; -}