Trouble is, there has been quite a bit of turmoil in the system init area recently. Can't really comment autoritatively on all of them.
For "traditional" SysVinit, you have a bunch of directories
/etc/rcX.d, where X ranges from 0 up to <max> which depends on the distribution's vagaries. The file
/etc/inittab states the default runlevel (normally "full graphics environment", on Fedora/Red Hat at least it is/was 5). With that, you go dig into
/etc/rc5.d (in this case), where you will find a farm of symlinks called
K is for kill, you are interested in the
S ones, for start. The number
NN is a precedence (in which sequence to start/stop stuff is gigne by them). The
somethingelseare descriptive names for the service. The
chkconfig --list command lists the same (OK, those it knows about, something nasty might have snuck in there...). The scripts themselves are not for the faint of heart. It has been said that reading them causes eye cancer in laboratory sysadmins.
Newer systems use
upstart (Ubuntu, some others), Fedora uses
systemd, Debian I believe offers several alternatives, and so do some of the minor distributions (some might even have their own system). MacOS and Solaris have their own idiosincratic service management. But in several Linux distributions the migration from
sysvinit isn't complete (on current Fedora, which spearheads
systemd, there are still older scripts around, and
systemd knows how to use them).
systemd expert, but that system is a lot more flexible than just "runlevels", you can have several
targets (e.g., graphical desktop, database server, web server) and mix and match.
systemctl list-units --type=target tells you which ones are configured,
systemctl list-units tells you all the stuff that is currently active.
For others, you'll have to wait for somebody knowledgeable editing them in here (or commenting).