systemd는 리눅스 시스템을 위한 기본 구성 요소 집합입니다. 이 장치는 시스템 및 서비스 관리자를 제공하며, 나머지 시스템을 PID 1로 실행하고 시작합니다.
systemd는 강력한 병렬화 기능을 제공하며, 소켓과 D-버스 활성화를 통해 서비스를 시작하고, 주문형 데몬 시작을 제공하며, 리눅스 제어 그룹을 이용해 프로세스를 추적하고, 마운트 및 자동 마운트 지점을 유지하며, 잘 설계된 트랜잭션 의존성 기반 서비스 제어 로직을 구현합니다. systemd는 SysV와 LSB init 스크립트를 지원하며 sysvinit을 대체할 수 있습니다.
기타 섹션으로는 로그 데몬, 호스트명, 날짜, 로케이트 등 기본 시스템 구성 제어용 유틸리티, 로그인 사용자 목록 유지, 컨테이너 및 가상 머신 실행 관리, 시스템 계정, 런타임 디렉터리, 설정, 그리고 단순 네트워크 데몬 구성 관리, 네트워크 시간 동기화, 로그 전달, 이름 해석 등이 포함됩니다.
systemd 구성 파일은 다음 세 개의 폴더에 존재합니다:
/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。
/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。
/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。 복습:
부대 프로필
systemd의 유닛 파일은 systemd가 관리할 수 있는 서비스, 소켓, 장치 등 다양한 유닛에 대한 정보를 인코딩하는 파일입니다. 이 가이드는 서비스에 초점을 맞추고 있으며, 이 경우 우리가 다루는 유닛 파일은 .service 파일입니다. varnish.service 장치 구성 파일에는 systemd가 varnish 데몬을 어떻게 실행, 모니터링, 관리해야 하는지에 대한 정보가 포함되어 있습니다.
[Unit] 블록은 보통 구성 파일의 첫 번째 블록으로, 유닛의 메타데이터와 다른 유닛과의 관계를 정의하는 데 사용됩니다. 주요 필드는 다음과 같습니다.
- 설명: 간단한 설명
- 문서화: 문서의 주소
- 필요: 현재 유닛이 의존하는 기타 유닛, 그리고 이들이 작동하지 않으면 현재 유닛이 시동이 걸리지 않습니다
- 원함: 현재 유닛과 함께 작동하는 다른 유닛들, 만약 그들이 작동하지 않는다면, 현재 유닛이 실패하지 않습니다
- BindsTo: Requires와 유사하게, 현재 유닛이 나가면 실행을 멈추게 하는 유닛을 지정합니다
- 전: 이 필드에 지정된 유닛도 시작할 경우, 현재 유닛 다음에 시작해야 합니다
- 후: 이 필드에 지정된 유닛도 시작할 경우, 현재 유닛보다 먼저 시작해야 합니다
- 충돌: 여기서 지정한 유닛은 현재 유닛과 동시에 운영될 수 없습니다
- 조건... : 현재 유닛이 실행되기 위해 충족해야 하는 조건들, 그렇지 않으면 실행되지 않습니다
- 주장하다... : 현재 장치가 작동하기 위해 충족해야 하는 조건들, 그렇지 않으면 시작 실패가 보고됩니다
[설치]는 보통 설정 파일의 마지막 블록으로, 부팅 방법과 부팅 여부를 정의합니다. 주요 필드는 다음과 같습니다.
- WantedBy: 그 값은 하나 이상의 Targets이며, 현재 유닛이 활성화(활성화)될 때, 심볼릭 링크는 /etc/systemd/system 디렉터리 아래 하위 디렉터리에 Target 이름 + .wants 접미사와 함께 배치됩니다
- RequiredBy: 그 값은 하나 이상의 Targets이며, 현재 유닛이 활성화되어 있을 때 심볼링크는 /etc/systemd/system 디렉터리 아래 하위 디렉터리에 Target 이름 + .required 접미사와 함께 배치됩니다
- 별칭: 현재 부대가 시작할 때 사용할 수 있는 별명입니다
- 또한: 현재 유닛이 활성화되면 다른 유닛들도 동시에 활성화됩니다
[서비스] 블록은 서비스를 구성하는 데 사용되며, 서비스 유형의 유닛만 이 블록을 가집니다. 주요 필드는 다음과 같습니다.
- 유형: 시작 시 프로세스의 동작을 정의합니다. 다음과 같은 값이 있습니다.
- Type=simple: 기본 값으로, ExecStart가 지정한 명령을 실행하여 메인 프로세스를 시작합니다
- type=forking: fork는 부모 프로세스로부터 자식 프로세스를 생성하며, 생성 직후 즉시 종료됩니다
- Type=oneshot: 일회성 프로세스로, Systemd는 현재 서비스가 종료될 때까지 기다렸다가 실행을 계속합니다
- 타입=dbus: 현재 운행은 D-버스를 통해 시작됩니다
- type=notify: 현재 서비스가 시작되면 Systemd가 알림을 받고 실행을 계속합니다
- type=idle: 현재 서비스는 다른 작업이 실행될 때만 실행됩니다
- ExecStart: 현재 서비스를 시작하는 명령어
- ExecStartPre: 현재 서비스를 시작하기 전에 실행된 명령
- ExecStartPost: 현재 서비스 시작 후 실행된 명령
- ExecReload: 현재 서비스가 재시작될 때 실행되는 명령어
- ExecStop: 현재 서비스가 중단되었을 때 실행되는 명령어
- ExecStopPost: 명령이 전달될 때 실행되는 명령을 멈춥니다
- RestartSec: 자동 서비스가 현재 서비스를 재시작하는 사이의 초 단위
- 재시작: Systemd가 현재 서비스를 자동으로 재시작하는 조건을 정의하며, 항상 (Ways), 성공 시(on-success), 실패 시(on-failure), 정상 시(on-abnormal), 중재(on-abort), 워치독 온(on-watchdog) 등의 가능한 값을 포함합니다
- TimeoutSec: Systemd가 현재 서비스를 중단하기 전에 대기하는 초수를 정의합니다
- 환경: 환경 변수를 지정하세요
Systemctl 관리 도구
CentOS의 프로그램 관리는 기본적으로 도구 systemctl에 의해 이루어집니다.
스타트업 서비스:
systemctl start name.service
서비스 중단:
systemctl stop, name.service
재시작 서비스:
systemctl restart name.service
상태 보기:
systemctl 상태 name.service
조건부 재시작:
서비스가 이전에 시작되었다면 재개되고, 서비스가 시작되지 않으면 운영되지 않습니다
systemctl try-restart name.service
재장전 또는 재시작:
먼저 재장전하고, 재장전이 실패하면 재부팅하세요
systemctl reload-or-restart name.service
재장전 또는 조건부 재시작:
systemctl reload-or-try-restart name.service
사용자가 상태를 시작하기 위해 서비스를 설정할 수 있는지 여부를 설정합니다
systemctl unmask name.service
systemctl 마스크 이름.서비스는 금지되어 있습니다
서비스의 현재 활성화 상태를 확인하세요:
서비스 시작 명령의 상태 반환 값은 0이며, 시작되지 않은 명령의 상태 반환 값은 0이 아닙니다.
systemctl is-active name.service
활성화된 모든 서비스를 확인하세요:
-t는 표시되는 유닛 유형을 지정합니다.
--모든 정보가 더 상세한 목록을 표시합니다.
-동등한 --모든
systemCTL 리스트-유닛
systemCTL list-units -t 서비스
systemctl list-units -t service -a
모든 서비스 보기:
systemCTL 리스트-단위 -a
모든 서비스 상태 보기:
systemctl list-unit-files
-a 、--all : 모든 서비스 상태 보기
-t 、--유형: 볼 단위의 유형을 지정합니다
loaded: 구성 파일이 로드되어 메모리에 로드되었습니다
활성(running): 한 번 이상 연속적으로 처리되는 런
active(exited): 일회성 설정이 성공적으로 완료됨
활성(대기): 달리기, 이벤트를 기다리고 있습니다
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另一个启用的服务激活
서비스가 활성화되고 비활성화되는 운영 수준을 나열하는 데 사용됩니다
ls /etc/systemd/system/*.wants/sshd.service
systemCTL 리스트-유닛-파일 --타겟 --all
서비스가 시작되지 않도록 설정하려면:
systemctl 서비스 이름 유닛 비활성화
서비스가 부팅되고 시작되었는지 확인하세요:
systemctl is-enabled name.service
서비스 의존성을 살펴보세요:
SystemCTL list-dependencies Name.service SystemCTL list-depebdencies
중량 적재 서비스:
systemctl 데몬-리로드
과정을 중단하세요:
systemCTL 프로세스 이름 종료
리소스:
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
|