Definition
In most OS running the systemd init subsystem, all legacy power management programs are symbolic links to systemctl
subcommands to preserve backward compatibility.
systemctl reboot
— reboot
systemctl poweroff
/systemctl shutdown
— shutdown
systemctl halt
— shuts down the system, stopping all services and processes and unmounting the file system, but leaves the computer on
PS: systemctl
knows what it was started from by using argv[0]
, which is a standard construct in C, here is a snippet of systemctl
source code (reduced tabs for readability):
int systemctl_dispatch_parse_argv(int argc, char *argv[]) {
assert(argc >= 0);
assert(argv);
if (invoked_as(argv, "halt")) {
arg_action = ACTION_HALT;
return halt_parse_argv(argc, argv);
} else if (invoked_as(argv, "poweroff")) {
arg_action = ACTION_POWEROFF;
return halt_parse_argv(argc, argv);
} else if (invoked_as(argv, "reboot")) {
arg_action = ACTION_REBOOT;
return halt_parse_argv(argc, argv);
} else if (invoked_as(argv, "shutdown")) {
arg_action = ACTION_POWEROFF;
return shutdown_parse_argv(argc, argv);