마지막 메이저 버전이 형성된 지 XNUMX년이 지난 후, 의 출시를 발표할 때 발표되었습니다. 새 버전의 서비스 관리자 GNU 셰퍼드 0.9 (이전에는 dmd로 알려짐) GNU Guix 배포판 개발자가 개발 시스템 종속성 인식 SysV-init 초기화의 대안으로.
목자 사용자 공간 기능을 서비스로 비동기적으로 제공, Shepherd에서 정의된 방식으로 기본 운영 체제를 확장하기 위해 Shepherd에서 사용하도록 내보낸 일반 함수 및 개체 데이터 유형입니다. systemd와 달리 사용자 공간 모니터링 프로세스는 해당 사용자로 실행됩니다.
셰퍼드 소개
사용자 공간 초기화의 셰퍼드 모델의 핵심은 확장의 개념이며, 서비스가 다른 서비스를 오버레이하도록 설계되어 원하는 대로 더 정교하거나 전문화된 동작으로 서비스를 보강하는 구성 가능성의 한 형태입니다. 이것은 많은 최신 부트 시스템에서 발견되는 인스턴스화 기반 종속 관계를 나타냅니다. 시스템을 모듈화하지만 서비스가 서로 가변적으로 상호 작용할 수 있습니다. 임의로 서비스합니다.
목자 또한 소위 가상 서비스를 제공합니다. 시스템의 메일 전송 에이전트(MTA)를 인스턴스화하는 것과 같은 관련 서비스 개체 클래스에 대한 동적 디스패치를 허용합니다.
Shepherd 데몬이 관리하는 시스템은 "시스템 서비스"(초기 부팅 및 시작 단계를 담당)를 루트로, 모든 후속 초기화 서비스를 시스템 서비스 기능의 확장으로 사용하여 사용자 공간을 방향성 비순환 그래프로 나타낼 수 있습니다. , 다른 서비스를 통해 직접 또는 전이적입니다.
Guile Scheme로 작성되고 구성되며, GNU Shepherd는 고도로 프로그래밍 가능하도록 설계되었습니다. 시스템 관리자가 사용하지만 권한이 없는 데몬 및 서비스의 사용자별 프로필을 관리하는 데 사용할 수도 있습니다.
서비스 및 설정이 Scheme 코드로 균일하게 저장됩니다. 기본 Guix 시스템으로 핵심 서비스 집합을 제공하지만, 임의의 새로운 서비스를 유연하게 선언할 수 있으며 Guile의 객체 시스템인 GOOPS를 통해 기존 서비스를 사용자의 재량으로 재정의할 수 있습니다. 인스턴스화에 대한 특정 방법.
GNU Shepherd는 원래 GNU Hurd와 함께 작동하도록 설계되었으며 나중에 Guix 시스템에 채택되었습니다.
GNU Shepherd 0.9의 주요 새로운 기능
제시된 이 새로운 버전에서는 다음과 같이 강조됩니다. 임시 서비스의 개념이 구현됩니다. (일시적인) 프로세스 종료 또는 "중지" 메서드 호출로 인해 종료 후 자동으로 연결이 끊어지며 종료 후 다시 시작할 수 없는 합성 서비스에 필요할 수 있습니다.
눈에 띄는 또 다른 변화는 ""#:log-file" 매개변수가 없는 서비스의 경우, syslog에 대한 출력이 제공됩니다. "#:log-file" 매개변수가 있는 서비스의 경우 로그는 $XDG_DATA_DIR 디렉터리에 저장된 권한 없는 Shepherd 프로세스의 로그 시간을 나타내는 별도의 파일에 기록됩니다.
또한 inetd와 유사한 서비스를 생성하기 위해 "make-inetd-constructor" 절차가 추가되었고 네트워크 활동(스타일 시스템 소켓 활성화).
다른 변경 사항 중 이 새 버전에서 눈에 띄는 :
- 백그라운드 서비스를 시작하는 절차를 추가했습니다.
- "make-forkexec-constructor" 절차에 ":supplementary-groups", "#:create-session" 및 "#:resource-limits" 매개변수를 추가했습니다.
- PID 파일을 기다리는 동안 잠금 없는 작동을 보장합니다.
- Guile 2.0으로 컴파일하기 위한 지원을 제거했습니다. Guile 버전 3.0.5-3.0.7을 사용할 때 문제가 수정되었습니다.
- 이제 Fibers 라이브러리 1.1.0 이상이 작동해야 합니다.
- 개선된 문서 및 예제
- Shepherd는 더 이상 Guile 2.0으로 건설할 수 없습니다.
- Guile 3.0 컴파일러 버그 수정.[5-7]
- 업데이트 된 번역
최종적으로 그것에 대해 더 많이 알고 싶다면 또는 이 새 버전을 얻으려면 세부 정보, 설명서를 참조하고 다음에서 다운로드할 수 있습니다. 다음 링크.