default.target 없이 systemd를 시작하는 방법은 무엇입니까?

default.target 없이 systemd를 시작하는 방법은 무엇입니까?

systemd 문서와 다양한 온라인 리소스에는 systemd가 (기본적으로) "default.target"이라는 "특수" 대상을 시작해야 한다고 명시되어 있습니다. 이 설정은 기본적으로 default.target에서 원하는 대상으로의 심볼릭 링크를 생성하는 systemctl set-default를 통해 변경할 수 있습니다.

하지만 내 시스템에는 그런 파일이 없습니다. /etc/systemd/system/default.target 및 /usr/lib/systemd/system/default.target이 없습니다(사실 이 파일은 전체 시스템에 존재하지 않습니다). 시스템이 아직 부팅 중입니다. 내 질문은 어떻게 이런 일이 일어날 수 있습니까?

(물론 심볼릭 링크를 직접 만들 수도 있습니다. default.target 없이 기본값을 정의하는 방법을 알고 싶습니다.)

추가 정보:

# systemctl get-default
graphical.target

그래서 내 기본 대상은 graphic.target입니다. 하지만 어디서(그리고 어떻게) 정의되나요?

# 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

루트 다이어그램systemd 파일의 위치를 ​​다음으로 변경하십시오./lib/systemd2017년 7월. 내 시스템에서는 다음 위치에서 기본 심볼릭 링크를 볼 수 있습니다 /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

/etc/systemd/system(당신처럼 ) 심볼릭 링크를 추가하면 systemctl set-default배포의 기본 설정이 무시됩니다.

관련 정보