10.3. systemd 대상 작업


SysV init 또는 Upstart와 함께 배포된 이전 버전의 Red Hat Enterprise Linux는 특정 작업 모드를 나타내는 사전 정의된 실행 수준을 구현했습니다. 이러한 실행 수준으로 인해 0에서 6까지 번호가 지정되었으며 시스템 관리자가 특정 실행 수준을 사용하도록 설정한 경우 실행할 시스템 서비스에 의해 정의되었습니다. Red Hat Enterprise Linux 7에서는 실행 수준이라는 개념이 systemd 대상으로 교체되었습니다.

systemd 대상은 대상 유닛으로 표시됩니다. 대상 단위는 . target 파일 확장자로 종료되고 유일한 목적은 종속 항목 체인을 통해 다른 systemd 유닛을 함께 그룹화하는 것입니다. 예를 들어 그래픽 세션을 시작하는 데 사용되는 graphical.target 장치는 GNOME Display Manager(gdm.service ) 또는 계정 서비스(accounts-daemon.service)와 같은 시스템 서비스를 시작하고, 다중 사용자.target 유닛을 활성화합니다. 마찬가지로 multi-user.target 장치는 NetworkManager(NetworkManager.service) 또는 D-Bus(dbus.service)와 같은 다른 필수 시스템 서비스를 시작하고 basic.target 이라는 다른 대상 장치를 활성화합니다.

Red Hat Enterprise Linux 7은 이 시스템의 이전 릴리스의 표준 실행 수준 세트와 비슷하거나 더 적은 사전 정의된 대상과 함께 배포됩니다. 호환성의 이유로 SysV 실행 수준을 직접 매핑하는 이러한 대상에 대한 별칭도 제공합니다. 표 10.6. “systemd 대상과 SysV Runlevels 비교” 에서는 SysV 실행 수준 및 해당 systemd 대상의 전체 목록을 제공합니다.

표 10.6. systemd 대상과 SysV Runlevels 비교
실행 수준대상 단위설명

0

runlevel0.target, poweroff.target

시스템을 종료하고 전원을 끕니다.

1

runlevel1.target, rescue.target

복구 쉘을 설정합니다.

2

runlevel2.target, multi-user.target

그래픽이 아닌 다중 사용자 시스템을 설정합니다.

3

runlevel3.target, multi-user.target

그래픽이 아닌 다중 사용자 시스템을 설정합니다.

4

runlevel4.target, multi-user.target

그래픽이 아닌 다중 사용자 시스템을 설정합니다.

5

runlevel5.target, graphical.target

그래픽 다중 사용자 시스템을 설정합니다.

6

runlevel6.target, reboot.target

시스템을 종료하고 재부팅합니다.

systemd 대상을 확인, 변경 또는 구성하려면 표 10.7. “systemctl과 SysV init 명령 비교” 및 아래 섹션에서 systemctl 유틸리티를 사용합니다. 실행 수준telinit 명령은 계속 시스템에서 사용할 수 있으며 예상대로 작동하지만 호환성상의 이유로만 포함되어 있어야 합니다.

표 10.7. systemctl과 SysV init 명령 비교
이전 명령새 명령설명

실행 수준

systemctl list-units --type 대상

현재 로드된 대상 유닛을 나열합니다.

telinit 실행 수준

systemctl isolate name.target

현재 대상을 변경합니다.

10.3.1. 기본 대상 보기

기본적으로 사용되는 대상 장치를 확인하려면 다음 명령을 실행합니다.

systemctl get-default

이 명령은 /etc/systemd/system/default.target 에 있는 심볼릭 링크를 확인하고 결과를 표시합니다. 기본 대상을 변경하는 방법에 대한 자세한 내용은 10.3.3절. “기본 대상 변경” 을 참조하십시오. 현재 로드된 모든 대상 장치를 나열하는 방법에 대한 자세한 내용은 10.3.2절. “현재 대상 보기” 을 참조하십시오.

예 10.10. 기본 대상 보기

기본 대상 장치를 표시하려면 다음을 입력합니다.

~]$ systemctl get-default
graphical.target

10.3.2. 현재 대상 보기

현재 로드된 모든 대상 장치를 나열하려면 쉘 프롬프트에서 다음 명령을 입력합니다.

systemctl list-units --type target

각 대상 유닛에 대해 이 명령은 전체 이름(UNIT)을 표시하고, 유닛이 로드되었는지 여부(LOAD), 높은 레벨( started) 및 하위 수준(SUB) 단위 활성화 상태, 짧은 설명 (DESCRIPTION)을 표시합니다.

기본적으로 systemctl list-units 명령은 활성 유닛만 표시합니다. 상태에 관계없이 로드된 유닛을 모두 나열하려면 --all 또는 -a 명령줄 옵션을 사용하여 이 명령을 실행하십시오.

systemctl list-units --type target --all

기본 대상을 표시하는 방법에 대한 자세한 내용은 10.3.1절. “기본 대상 보기” 을 참조하십시오. 현재 대상을 변경하는 방법에 대한 자세한 내용은 10.3.4절. “현재 대상 변경” 을 참조하십시오.

예 10.11. 현재 대상 보기

현재 로드된 모든 대상 장치를 나열하려면 다음 명령을 실행합니다.

~]$ systemctl list-units --type target
UNIT         LOAD  ACTIVE SUB  DESCRIPTION
basic.target     loaded active active Basic System
cryptsetup.target   loaded active active Encrypted Volumes
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
multi-user.target   loaded active active Multi-User System
network.target    loaded active active Network
paths.target     loaded active active Paths
remote-fs.target   loaded active active Remote File Systems
sockets.target    loaded active active Sockets
sound.target     loaded active active Sound Card
spice-vdagentd.target loaded active active Agent daemon for Spice guests
swap.target      loaded active active Swap
sysinit.target    loaded active active System Initialization
time-sync.target   loaded active active System Time Synchronized
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.

17 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

10.3.3. 기본 대상 변경

기본적으로 다른 대상 장치를 사용하도록 시스템을 구성하려면 쉘 프롬프트에 root 로 다음을 입력합니다.

systemctl set-default name.target

기본적으로 사용할 대상 유닛의 이름으로 이름을 바꿉니다(예: 다중 사용자). 이 명령은 /etc/systemd/system/default.target 파일을 /usr/lib/systemd/system/name.target 에 대한 심볼릭 링크로 교체합니다. 여기서 name 은 사용하려는 대상 장치의 이름입니다. 현재 대상을 변경하는 방법에 대한 자세한 내용은 10.3.4절. “현재 대상 변경” 을 참조하십시오. 현재 로드된 모든 대상 장치를 나열하는 방법에 대한 자세한 내용은 10.3.2절. “현재 대상 보기” 을 참조하십시오.

예 10.12. 기본 대상 변경

기본적으로 multi-user.target 장치를 사용하도록 시스템을 구성하려면 root 로 다음 명령을 실행합니다.

~]# systemctl set-default multi-user.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'

10.3.4. 현재 대상 변경

현재 세션에서 다른 대상 단위로 변경하려면 쉘 프롬프트에 root 로 다음을 입력합니다.

systemctl isolate name.target

name 을 사용하려는 대상 유닛의 이름으로 바꿉니다(예: 다중 사용자). 이 명령은 name 및 모든 종속 유닛이라는 대상 유닛을 시작하고 다른 모든 장치를 즉시 중지합니다. 기본 대상을 변경하는 방법에 대한 자세한 내용은 10.3.3절. “기본 대상 변경” 을 참조하십시오. 현재 로드된 모든 대상 장치를 나열하는 방법에 대한 자세한 내용은 10.3.2절. “현재 대상 보기” 을 참조하십시오.

예 10.13. 현재 대상 변경

그래픽 사용자 인터페이스를 끄고 현재 세션의 multi-user.target 장치로 변경하려면 root 로 다음 명령을 실행합니다.

~]# systemctl isolate multi-user.target

10.3.5. 복구 모드로 변경

복구 모드는 편리한 단일 사용자 환경을 제공하며 일반적인 부팅 프로세스를 완료할 수 없는 상황에서 시스템을 복구할 수 있습니다. 복구 모드에서는 시스템이 모든 로컬 파일 시스템을 마운트하고 일부 중요한 시스템 서비스를 시작하려고 하지만 네트워크 인터페이스를 활성화하지 않거나 더 많은 사용자가 시스템에 로그인할 수 있도록 합니다. Red Hat Enterprise Linux 7에서 복구 모드는 단일 사용자 모드 와 동일하며 root 암호가 필요합니다.

현재 대상을 변경하고 현재 세션에서 복구 모드로 들어가려면 쉘 프롬프트에 root 로 다음을 입력합니다.

systemctl rescue

이 명령은 systemctl isolate rescue.target 과 유사하지만 현재 시스템에 로그인한 모든 사용자에게 정보 메시지를 보냅니다. systemd가 이 메시지를 전송하지 못하도록 하려면 --no-wall 명령줄 옵션을 사용하여 이 명령을 실행하십시오.

systemctl --no-wall rescue

긴급 모드로 전환하는 방법에 대한 자세한 내용은 10.3.6절. “긴급 모드로 변경” 을 참조하십시오.

예 10.14. 복구 모드로 변경

현재 세션에서 복구 모드로 들어가려면 root 로 다음 명령을 실행합니다.

~]# systemctl rescue

Broadcast message from root@localhost on pts/0 (Fri 2013-10-25 18:23:15 CEST):

The system is going down to rescue mode NOW!

10.3.6. 긴급 모드로 변경

긴급 모드는 가능한 가장 최소한의 환경을 제공하며 시스템이 복구 모드로 전환되지 않은 경우에도 시스템을 복구할 수 있습니다. 긴급 모드에서는 읽기용으로만 루트 파일 시스템을 마운트하고 다른 로컬 파일 시스템을 마운트하지 않고 네트워크 인터페이스를 활성화하지 않으며 몇 가지 필수 서비스만 시작합니다. Red Hat Enterprise Linux 7의 긴급 모드에서는 루트 암호가 필요합니다.

현재 대상을 변경하고 긴급 모드로 전환하려면 쉘 프롬프트에서 root 로 다음을 입력합니다.

systemctl emergency

이 명령은 systemctl isolate emergency.target 과 유사하지만 현재 시스템에 로그인한 모든 사용자에게 정보 메시지를 보냅니다. systemd가 이 메시지를 전송하지 못하도록 하려면 --no-wall 명령줄 옵션을 사용하여 이 명령을 실행하십시오.

systemctl --no-wall emergency

복구 모드로 전환하는 방법에 대한 자세한 내용은 10.3.5절. “복구 모드로 변경” 을 참조하십시오.

예 10.15. 긴급 모드로 변경

현재 시스템에 로그인한 모든 사용자에게 메시지를 보내지 않고 긴급 모드로 전환하려면 root 로 다음 명령을 실행합니다.

~]# systemctl --no-wall emergency
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.