마지막 출시 이후 거의 XNUMX년 만에 새로운 버전의 서비스 매니저가 출시되었습니다. GNU 셰퍼드 0.10 (이전에는 dmd로 알려짐) GNU Guix 배포판 개발자가 개발 시스템 종속성 인식 SysV-init 초기화의 대안으로.
이 새로운 릴리스 GNU Shepherd 0.10은 132 커밋을 나타냅니다. 단점을 보완하고 새로운 기능을 제공하므로 릴리스로 간주됩니다.
시스템 상태를 이해하는 데 도움이 됩니다.
GNU Shepherd는 시스템에서 실행되는 "herd" 데몬을 관리하는 Guile로 작성된 서비스 관리자입니다.사용자 영역 기능을 서비스로 비동기식으로 제공 시스템 초기화(PID 1)로 사용할 수 있으며 권한이 없는 사용자가 사용자별 데몬(예: tor, privoxy, mcron)을 관리하는 데 사용할 수 있습니다.
inetd 및 systemd 스타일 트리거 소켓을 포함하여 여러 데몬 시작 메커니즘을 지원합니다. GNU Shepherd는 Guile Scheme으로 구성되어 있으며 동일한 언어로 확장될 수 있습니다. 간단한 메모리 안전 및 콜백 없는 프로그래밍 모델을 기반으로 합니다.
사용자 공간 초기화의 Shepherd 모델의 핵심에는 서비스가 다른 서비스와 겹치도록 설계되어 원하는 대로 더 정교하거나 특수화된 동작으로 서비스를 보강하는 구성 가능성의 한 형태인 확장 개념이 있습니다.
GNU Shepherd 0.10의 주요 새로운 기능
이번에 발표된 GNU Shepherd 0.10의 새 버전에서 눈에 띄는 것은 새로운 중간 서비스 상태: "시작" 그리고 "멈춤", "herd status" 명령을 실행하고 서비스가 시작 또는 중지 중인지 확인하여 표시됩니다(이전에는 herd 상태만 지원됨). "실행 중" 및 "중지됨").
새 버전에서 눈에 띄는 또 다른 변경 사항은 작업 재실행 차단 제공 "시작"과 "중지" 서비스가 이미 시작되었는지 또는 중지되었는지 여부(이전에는 "무리 시작 서비스» 결과적으로 서비스의 두 번째 인스턴스를 시작하려고 시도했습니다).
이 외에도 강조하고 있는 것은 종속성 실행의 병렬화가 제공됩니다. « 모드에서 시작된 서비스백그라운드에서 시작«, 각 서비스 상태의 실패 및 변경 시간에 대한 설명. 누적 통계는 "herd status" 명령이 실행될 때 표시됩니다.
또한 "herd log" 명령이 추가되어 이벤트의 요약 로그와 서비스 상태의 모든 변경 사항 목록을 표시할 수 있습니다.
의 다른 변화 눈에 띄는 :
- Graphviz("herd graph | xdot -")를 사용하여 종속성의 시각적 그래프를 표시할 수 있는 데이터를 생성하는 "herd graph" 명령을 추가했습니다.
- 무리 명령 출력의 색상 강조 표시가 구현되었습니다.
- 새 서비스 추가: 프로세스의 리소스 소비를 모니터링하는 "모니터링" 및 REPL(읽기-평가-인쇄 주기) 디버깅 인터페이스를 실행하는 "repl".
- GOOPS(Guile Object Oriented Programming System) 인터페이스는 더 이상 사용되지 않습니다.
마지막으로, 그것에 대해 더 알고 싶은 사람들은 자세한 내용을 참조할 수 있습니다. 다음 링크.
GNU 셰퍼드를 설치하는 방법?
이미 언급한 바와 같이 GNU Shepherd를 사용해 보고 싶은 분들을 위해 Shepherd는 GNU Guix 프로젝트와 함께 개발되었으며 Guix 시작 시스템으로 사용됩니다.
비록 또한Linux 배포판에는 Shepherd를 설치할 수 없습니다. 그래서 그런 사람들의 경우 아치 리눅스 사용자 AUR 저장소를 활성화하고 다음 명령을 입력하기만 하면 됩니다.
yay -S shepherd
다른 모든 배포판의 경우 소스코드를 컴파일하여 설치 가능 이를 위해 터미널을 열고 입력하는 것으로 충분합니다.
wget https://ftp.gnu.org/gnu/shepherd/shepherd-0.10.0.tar.gz
다음과 같이 추출합니다.
tar -xvf shepherd/shepherd-0.10.0.tar.gz
다음과 같이 디렉토리를 입력합니다.
cd shepherd-0.10.0
그리고 다음으로 컴파일을 진행합니다.
./configure --prefix=/some/where
make
make check
make install