systemd는 현재 여러 리눅스 배포판에서 사용하는 PID 1 init 및 서비스 관리자입니다. systemd 프로젝트는 로깅, 장치, 로그인, 네트워크, 시간 및 기타 구성 요소도 제공하지만 배포판은 어떤 부분을 배포할지 선택할 수 있습니다.
Init · 레슨 5
Systemd 개요
systemd가 단위를 불러오고 의존성을 해결하며 대상을 활성화하고 시스템 및 사용자 리소스를 관리하는 방법을 알아봅니다.
실행 중인 관리자 확인하기
설치된 디렉터리의 존재가 아니라 실행 중인 상태를 검사합니다.
$ ps -p 1 -o pid,comm,args=
$ systemctl is-system-running
다른 프로그램이 PID 1인 시스템에도 /usr/lib/systemd/가 존재할 수 있고 컨테이너는 자체 PID 네임스페이스를 노출할 수 있습니다. systemctl에는 사용자 관리자와 원격/컨테이너 모드도 있으므로 작업이 어느 관리자를 대상으로 하는지 식별하십시오.
systemd가 시스템 init 관리자임을 가장 직접적으로 식별하는 것은 무엇입니까?
관리 객체인 단위
단위는 systemd가 리소스나 활동에 이름을 붙여 만든 모델입니다. 일반적인 단위 유형은 다음과 같습니다.
- 프로세스와 데몬을 위한
.service - 소켓 활성화를 위한
.socket - 파일 시스템을 위한
.mount및.automount - 이벤트 구동 활성화를 위한
.timer및.path - 그룹화와 동기화를 위한
.target - 다른 관리 리소스를 위한
.device,.swap,.slice및.scope
단위 상태가 항상 “실행 중”인 것은 아닙니다. 마운트는 마운트된 상태, 타이머는 대기 상태, 장치는 존재 상태이며 대상은 의존성이 도달된 뒤 활성 상태일 수 있습니다.
다른 단위를 일반적으로 묶고 동기화 지점을 제공하는 단위 유형은 무엇입니까?
단위 로드 경로와 재정의
시스템 단위는 다음과 같은 배포판 및 관리자 경로에서 불러올 수 있습니다.
- 여러 배포판에서 패키지가 제공한 단위를 위한
/usr/lib/systemd/system/ - 런타임에 생성된 또는 임시 설정을 위한
/run/systemd/system/ - 영구 로컬 관리자 설정 및 재정의를 위한
/etc/systemd/system/
정확한 공급업체 경로는 다를 수 있습니다. 우선순위가 높은 로컬 설정은 같은 단위 이름을 가진 낮은 우선순위 파일을 재정의합니다. 패키지 업데이트의 변경이 계속 보이도록 전체 공급업체 파일을 복사해 수정하지 말고 systemctl edit UNIT으로 만든 드롭인 재정의를 우선 사용하십시오.
영구적인 로컬 시스템 단위 재정의는 일반적으로 어디에 있어야 합니까?
의존성과 순서
systemd는 의존 관계에서 트랜잭션을 구성합니다. Wants=와 Requires=는 강도가 다른 방식으로 다른 단위를 트랜잭션에 포함합니다. Before=와 After=는 두 단위가 모두 예약되어 있을 때 순서를 지정하며 그 자체로 다른 단위를 시작하게 하지는 않습니다.
After=network.target 줄은 사용 가능한 연결, DNS 또는 특정 원격 엔드포인트의 준비 완료를 증명하지 않습니다. 서비스는 적절한 network-online 통합을 사용하거나 자체 재시도 및 준비 상태 동작을 구현해야 합니다.
After=other.service만으로 지정되는 것은 무엇입니까?
대상과 기본 부팅 트랜잭션
default.target은 일반적으로 multi-user.target 또는 graphical.target 같은 대상의 별칭입니다. systemd는 해당 대상과 의존성의 트랜잭션을 시작하며 명시적인 순서를 적용하면서 관련 없는 작업을 동시에 진행시킵니다.
대상은 넓은 호환성 수준에서만 런레벨과 비슷합니다. 여러 대상이 동시에 활성화될 수 있고 사용자 정의 대상을 만들 수 있으며, 대상이 활성 상태라고 해서 시스템의 모든 서비스가 정상이라는 뜻은 아닙니다.
default.target은 일반적으로 무엇을 선택합니까?
레슨 완료
Systemd 개요 완료
이제 실행 중인 관리자, 단위 및 트랜잭션을 중심으로 systemd를 설명할 수 있습니다.
관련 PID 1과 관리자 연결을 통해 systemd를 확인합니다.
리소스 유형을 단위 접미사와 연결합니다.
로컬 재정의를 공급업체 설정보다 높은 계층에 둡니다.
의존성 강도, 순서 및 애플리케이션 준비 상태를 구분합니다.
대상을 배타적인 상태가 아니라 그룹과 이정표로 취급합니다.