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.
    – goteguru
    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.
    – ErikF
    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 ;)
    – Tim
    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 :)
    – goteguru
    Commented Jul 5, 2018 at 8:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .