мнээээ, емнип и shutdown и halt дергают одни и те же функции ядра.
т.е. это только враппер между функциями ядра и человеком.
т.е. различие в наборе параметров человеко-интерфейса.
Раньше разница была. Теперь (я имею в виду системы с systemd) все эти poweroff`ы, halt`ы и shutdown`ы - фактически представляют собой врапперы для одного и того же кода, см. https://unix.stackexchange.com/questions/195898/wh...
by_EL, смотрим man shutdown на тему того, что умеет shutdown, и man halt на тему того, что умеет halt.
То, что все они представляют из себя ссылки на systemctl (проверяется командами типа ls -l /sbin/halt), это всего лишь особенности реализации. Любая программа может через argv[0] узнать, по какому имени её запустили, и systemctl при вызове с именем типа halt или shutdown просто изменяет своё поведение.