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`.<sup>1</sup> 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][1], `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". _______________ <sup>1. They are still treated differently because the executable can check what name it was invoked with.</sup> [1]: https://en.wikipedia.org/wiki/Systemd