Something worth noting from the manual page for halt
, poweroff
and reboot
is:
These are legacy commands available for compatibility only.
At the bottom is a "see also" for systemctl
, and man systemctl
has further details regarding the difference between the three things (in context, systemctl halt
, systemctl reboot
, etc). As Milliways points out in a comment below, the three legacy commands are actually symbolic links to systemctl
.1
My own preference is halt
since it's the shortest to type; on machines that can be powered off I use halt -p
. However, this does not apply to the pi.
init 0
This is an anachronism that, again, will work for backward compatibility. However, if you are new to linux you should avoid it since the init system, systemd
, does not use SysV runlevels (so don't bother thinking in those terms).
I could just unplug the power and let it crash
Please see "https://raspberrypi.stackexchange.com/q/50345/5538".
1. They are still treated differently because the executable can check what name it was invoked with.