Systemd defines a bunch of special targets that all relate to shutting down a system, like the ones listed in the title of this post. There seem to be more.
man systemd.special
gives definitions for them, but does not attempt to differentiate between them.
Just under which circumstances am I supposed to use which of those targets?
The
shutdown.target
can't be called explicitly, it contains the lineRefuseManualStart=yes
. It is the common part of the other ones, responsible for stopping processes and so on.reboot.target
means after shutdown, reboot the system.poweroff.target
means after shutdown, power off the system.halt.target
means after shutdown, don't do anything (no reboot, no poweroff). The system will just wait in a shutdown state.