Определение
В большинстве ОС под управлением подсистемы иницализации systemd все старые программы для управления питания являются символьными ссылками на подкоманды systemctl для сохранения обратной совместимости

systemctl reboot — перезагрузка
systemctl poweroff/systemctl shutdown — выключение
systemctl halt — завершает работу системы, останавливая все службы и процессы и размонтировав ФС, но оставляет компьютер включенным
PS: systemctl понимает из чего он был запущен за счет использования argv[0], что является стандартной конструкцией в языке C, вот кусок исходного кода systemctl (уменьшил табуляцию для удобочитаемости):
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);