23#include <sys/reboot.h>
25static int usage(
const char* program) {
26 fprintf(stderr,
"Usage: %s [-r|-h|-P] [now]\n", program);
30int main(
int argc,
char** argv) {
31 const char* program = strrchr(argv[0],
'/');
32 program = program ? program + 1 : argv[0];
33 int command = !strcmp(program,
"reboot") ? RB_AUTOBOOT
34 : !strcmp(program,
"halt") ? RB_HALT_SYSTEM
37 for (
int i = 1; i < argc; ++i) {
38 if (!strcmp(argv[i],
"now") && i == argc - 1)
41 return usage(program);
42 if (!strcmp(argv[i],
"-r"))
43 command = RB_AUTOBOOT;
44 else if (!strcmp(argv[i],
"-h") || !strcmp(argv[i],
"-P"))
45 command = RB_POWER_OFF;
47 return usage(program);
50 if (reboot(command) < 0)