Linux supports a reboot system call. You can view details by running the command man 2 reboot. The library function for reboot takes four arguments.

int reboot(int magic, int magic2, int cmd, void *arg);

The reboot function needs to be called with the first two parameters, magic and magic2, set to particular values. This is assumedly a safety mechanism to prevent unintended computer reboots.

The value of the first parameter must be set to LINUX_REBOOT_MAGIC1, which is a constant defined in linux/reboot.h. The value of the second parameter must be set to LINUX_REBOOT_MAGIC2, LINUX_REBOOT_MAGIC2A, LINUX_REBOOT_MAGIC_2B, or LINUX_REBOOT_MAGIC_2C.

Here are the definitions of the magic number constants:

 * Magic values required to use _reboot() system call.

#define	LINUX_REBOOT_MAGIC1	0xfee1dead
#define	LINUX_REBOOT_MAGIC2	672274793
#define	LINUX_REBOOT_MAGIC2A	85072278
#define	LINUX_REBOOT_MAGIC2B	369367448
#define	LINUX_REBOOT_MAGIC2C	537993216

The man page says the hexadecimal values of these constants are meaningful. Let’s take a look:


The constants, when printed as hexadecimal, clearly refer to important dates. In fact, the first date is none other than the birthday of Linus Torvalds! I’ve been unable to determine the significance of the other three dates. If anyone knows, please reach out to me.