shutdown is the command operators reach for out of habit when they want to bring a system down. For the common case (a single-user workstation, a headless server, an ad-hoc maintenance window), halt does the same orderly shutdown with less ceremony and a simpler invocation. The reason shutdown won the muscle memory is historical and no longer applies on modern systemd systems.
tag: #freebsd
Consumer operating systems trained an entire generation of operators to reach for the reboot button as the first step of any debugging session. On Windows this is occasionally the right answer. On Linux and FreeBSD it is almost always the wrong one, because the reboot destroys the evidence you needed to fix the problem in the first place.
FreeBSD's rc system is the init mechanism that has aged best in the Unix world. It uses ordered shell scripts, a clean configuration hierarchy, and a dependency resolver that handles the ordering problem without numbered runlevels. This post walks through how /sbin/init reaches /etc/rc, how the configuration files in /etc/defaults/rc.conf and /etc/rc.conf and /etc/rc.conf.local compose, and where your own scripts belong on a properly maintained FreeBSD system.