I've been using the BeagleBone Black as a headless web application server. For this purpose I don't want X Windows or GDM slowing the boot process and taking up precious resources. I looked around for ways to disable these processes and the top results were very very wrong and broken.
The factory-installed firmware of the BeagleBone Black uses systemd for starting services and managing runlevels instead of a more common sys-V style init.
By default the BeagleBone Black has a symlink in
/etc/systemd/system/default.target that points to
graphical.target file needs
display-manager.service which then is a symlink to
Systemd looks at the
default.target symlink as the root service for starting up all other systems and services; it is the default "runlevel", if you will. The systemd FAQ says as much and shows you how you can change the default target by changing the symlink, but there is an easier way.
systemctl enable multi-user.target
systemctl will look at the
[Install] section in
multi-user.target and see that it has an
Alias=deault.target which tells it to create the
/etc/systemd/system/default.target symlink when it is enabled. This will overwrite the symlink to
graphical.target and when your system reboots the default "runlevel" will be "multi-user" which is all services except the GUI.
It boots much quicker!