1
0
mirror of git://git.suckless.org/ubase synced 2024-12-24 23:52:34 +00:00
ubase/halt.c
sin 051ed9a79c Add halt(8)
This is a very barebones halt cmd.  Please make sure that your
system is in a proper state to halt before using this.  This is
likely only useful for very barebones systems like an emergency
shell or similar.

Normally this command would be part of an actual init system.
2013-08-09 15:37:04 +01:00

41 lines
589 B
C

/* See LICENSE file for copyright and license details. */
#include <linux/reboot.h>
#include <sys/syscall.h>
#include <unistd.h>
#include <stdio.h>
#include "util.h"
static void
usage(void)
{
eprintf("usage: %s [-p]\n", argv0);
}
int
main(int argc, char *argv[])
{
int pflag = 0;
int cmd = LINUX_REBOOT_CMD_HALT;
ARGBEGIN {
case 'p':
pflag = 1;
break;
default:
usage();
} ARGEND;
if (argc > 0)
usage();
sync();
if (pflag)
cmd = LINUX_REBOOT_CMD_POWER_OFF;
if (syscall(__NR_reboot, 0xfee1dead, 672274793,
cmd, NULL) < 0)
eprintf("reboot:");
return 0;
}