3

The systemd documentation and various online sources are declaring that systemd should start (by default) the "special" target called "default.target". It is possible to change this by systemctl set-default which basically makes a symlink from default.target to the desired target.

However in my system there is no such file. No /etc/systemd/system/default.target, no /usr/lib/systemd/system/default.target (actually this file is not exists in the whole system). The system is still booting. My question is how can it be?

(Of course I could make a symlink myself, I just want to know how it is possible to define a default without default.target)

Additional info:

# systemctl get-default graphical.target 

So my default target is graphical.target. But where (and how) is it defined?

# find /usr/lib -iname "default.target" # no results # find /etc -iname "default.target" # no results # lsb_release -a LSB Version: n/a Distributor ID: Gentoo Description: Gentoo Base System release 2.4.1 Release: 2.4.1 Codename: n/a # systemctl list-units --type=target UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System getty.target loaded active active Login Prompts graphical.target loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems machines.target loaded active active Containers multi-user.target loaded active active Multi-User System network-online.target loaded active active Network is Online network.target loaded active active Network nss-lookup.target loaded active active Host and Network Name Lookups paths.target loaded active active Paths remote-fs.target loaded active active Remote File Systems slices.target loaded active active Slices sockets.target loaded active active Sockets sound.target loaded active active Sound Card swap.target loaded active active Swap sysinit.target loaded active active System Initialization timers.target loaded active active Timers LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 18 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'. 

1 Answer 1

4

Gentoo changed the location of the systemd files to /lib/systemd in July of 2017. On my system, I can see the default symlink in /lib/systemd/system:

$ ls -l /lib/systemd/system/default.target lrwxrwxrwx 1 root root 16 Apr 2 15:48 /lib/systemd/system/default.target -> graphical.target 

If you add a symlink in /etc/systemd/system (like systemctl set-default does), it will override the distribution's default setting.

4
  • oh, thanks, silly me. Actually it's not just gentoo. Debian and ubuntu seems to follow the same path. It's still not clear why no default.target in systemctl list-units --type target but at least now I know from where this info comes. Commented Apr 3, 2018 at 17:58
  • 1
    Symlinked units/targets/etc. are considered to be aliases and aren't shown in the list: only the actual target names are shown. Commented Apr 3, 2018 at 19:33
  • @goteguru, Gentoo users cannot be stressed enough to read news items. So, please take the News notification from emerge serious ;) Commented Jun 28, 2018 at 9:03
  • Usually I read them, but forget if it doesn't seem to be relevant for me. Who thought then it will change soon :) Commented Jul 5, 2018 at 8:51

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.