Linux

[systemd] systemctl을 이용한 Runlevel/Target 관리

비번변경 2022. 6. 6. 21:40

Target

기존 Unix/Linux는 부팅 시 제공하는 기능의 수준을 결정하는 Runlevel이라는 개념을 사용했다.

다만 systemd가 도입되며 Target이라는 용어로 변경되었다. Runlevel에 따른 Target은 아래와 같다.

Runlevel Target 의미
0 poweroff.target 시스템 중단
1 rescue.target 텍스트 기반의 단일 사용자 모드
2, 3, 4 multi-user.target 텍스트 기반의 다중 사용자 모드
5 graphical.target X 윈도우 기반의 다중 사용자 모드
6 reboot.target 시스템 리부팅

 

 

systemd

systemd(System daemon)은 시스템 부팅 시 가장 먼저 생성된 후 다른 프로세스를 실행하는 init 역할을 대체한다.

대부분의 리눅스 시스템에 공식적으로 채택되었다.

systemd

 

명령어

현재 런레벨(타겟) 확인

현재 사용하고 있는 런레벨을 확인한다.

runlevel

# 또는
who -r

get running target

 

시스템 기본 타겟 확인

시스템이 부팅 시 사용하는 타겟을 확인한다.

systemctl get-default

systemctl get-default

 

시스템 지원 타겟 확인

시스템이 지원할 수 있는 타겟 목록을 확인한다.

# 활성화된 타겟만 출력
systemctl list-units --type target

# 비활성화된 타겟 포함하여 출력
systemctl list-units --type target --all

systemctl list-units --type target --all

 

시스템 기본 타겟 변경

시스템이 부팅 시 사용하는 타겟을 변경한다. 설정 후 재부팅 시 변경한 타겟을 사용한다.

systemctl set-default <TARGET>

# 예시
systemctl set-default multi-user.target

 

현재 타겟 변경

현재 사용 중인 타겟을 변경한다.

systemctl isolate <TARGET>
# 또는
systemctl start <TARGET>

# 예시
systemctl isolate multi-user.target
systemctl start multi-user.target

change running target

 

 

참고 문서

https://www.lesstif.com/system-admin/systemd-system-daemon-systemctl-24445064.html

https://www.lesstif.com/system-admin/linux-systemd-systemctl-run-level-target-98926803.html

https://www.freedesktop.org/software/systemd/man/runlevel.html

https://en.wikipedia.org/wiki/Systemd#/media/File:Systemd_components.svg