Research Unix init runs the initialization shell script located at /etc/rc,[2] then launches getty on terminals under the control of /etc/ttys.
[6][7] To remove the requirement to edit /etc/rc, BSD variants have long supported a site-specific /etc/rc.local file that is run in a sub-shell near the end of the boot sequence.
[8] The order in which scripts are executed is determined by the rcorder utility based on the requirements stated in these tags.
However, the Solaris and illumos operating systems typically reserve runlevel 5 to shut down and automatically power off the machine.
[12] The root user typically changes the current runlevel by running the telinit or init commands.
Traditionally, one of the major drawbacks of init is that it starts tasks serially, waiting for each to finish loading before moving on to the next.
Various efforts have been made to replace the traditional init daemons to address this and other design problems, including: As of February 2019[update], systemd has been adopted by most major Linux distributions.