I found two ways to change the default runlevel in systemd:


# systemctl enable multi-user.target


# ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target

Background: I don't want to start XDM/GDM on a server.

Which is the preferred way to change the default runlevel?


In my opinion the best way to avoid running XDM/GDM is simply to avoid installing it. The second best way would be to disable it in systemd. There is certainly no reason to play with runlevels when you always want to boot into the very same setup.

If you still wished to do that, the way documented by upstream is generally the correct one. Archlinux wiki is unreliable in that it can contain obsolete or distribution specific information and you didn't specify whether you actually use Archlinux. In this very case if you look in the wiki again, it now says:

systemctl set-default -f multi-user.target

This command will just create/replace the link. In this exceptional case the distribution wiki now looks more up to date than the upstream FAQ.


The systemctl command does it now, the ln command sets it for next boot. For a init 3 style, you want the multi-user target (no display managers). So do the ln command for a permanent change.

Good cheatsheet here: http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet for us SysVinit veterans converting to Systemd

  • systemctl enable doesn't perform any immediate action. – Pavel Šimerda Apr 5 '15 at 5:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.