오픈RC

오픈RC(OpenRC)는 유닉스 계열 운영체제를 위한 의존성 기반의 Init 시스템이다. 이는 젠투 리눅스 프로젝트에서도 활동한 NetBSD 개발자 로이 마플스가 만들었다.

섬네일|오픈RC로 아틱스 리눅스 부팅 중|329x329px
섬네일|부팅 과정|315x315px

 채택 
오픈RC는 다음의 기본 Init 시스템 또는 프로세스 관리자이다.

 알파인 리눅스
 아치뱅 리눅스
 칼큘레이트 리눅스
 펀투
 젠투 리눅스
 하이퍼볼라 GNU/리눅스-리브레
 마에모 레스테
 니트룩스

오픈RC는 다음의 Init 시스템 또는 프로세스 관리자로 사용할 수 있다.

 아틱스 리눅스
 데부안
 파라볼라 GNU/리눅스-리브레
 아치 리눅스 (아치 사용자 저장소를 통해 사용 가능)
 PostmarketOS
 데비안

 설계 
오픈RC는 여러 모듈식 구성 요소로 이루어져 있으며, 주요 구성 요소는 init(선택 사항), 핵심 의존성 관리 시스템, 데몬 관리자(선택 사항)이다. C와 POSIX 호환 셸로 작성되어 BSD 및 리눅스 시스템에서 사용할 수 있다.

오픈RC의 핵심 부분은 의존성 관리 및 init 스크립트 파싱을 처리한다. 오픈RC는 런레벨을 스캔하고, 의존성 그래프를 구축한 다음, 필요한 서비스 스크립트를 시작하여 작동한다. 스크립트가 시작되면 종료된다. 기본적으로 오픈RC는 데몬 관리를 위해 start-stop-daemon의 수정된 버전을 사용한다.

Init 스크립트는 SysVinit에서 사용되는 스크립트와 유사하지만, 스크립트 생성을 단순화하는 여러 기능을 제공한다. 스크립트는 , , 를 가지고 있다고 가정하며, 시스템은 이미 선언된 변수를 사용하여 기본 함수를 생성한다. depend 함수는 SysVinit에서 LSB 헤더로 수행될 다른 서비스에 대한 의존성을 선언하는 데 사용된다. 구성과 메커니즘은 conf.d 디렉토리의 구성 파일과 init.d 디렉토리의 init 파일로 분리된다.

openrc-init은 버전 0.25에서 의 선택적 대체품으로 처음 등장했다. 이는 젠투 리눅스의 기본 init 시스템인 SysVinit을 대체할 수 있다.

Supervise-daemon은 OpenRC에 감독 기능을 부여하며 버전 0.21에서 처음 등장했다. supervise-daemon이 데몬을 시작하고 모니터링하도록 init 스크립트에서 활성화할 수 있다. Runit 및 s6을 포함한 여러 다른 데몬 감독자가 지원된다.

 기능 

 리눅스, FreeBSD, NetBSD 간 이식 가능
 병렬 서비스 시작 (기본적으로 비활성화)
 의존성 기반 부팅
 Cgroups를 통한 프로세스 분리
 서비스별 리소스 제한 (ulimit)
 코드와 구성 분리 (init.d / conf.d)
 확장 가능한 시작 스크립트
 상태 저장 init 스크립트 (이미 시작되었는가?)
 여러 구성 요소 시작을 위한 복잡한 init 스크립트 (삼바 [smbd 및 nmbd], NFS [nfsd, portmap 등])
 자동 의존성 계산 및 서비스 순서 지정
 모듈식 아키텍처 및 선택적 구성 요소 분리 (Cron, 시스로그)
 표현력 있고 유연한 네트워크 처리 (VPN, 브리지 등 포함)
 자세한 디버그 모드
 사용자 서비스

 각주 

분류:유닉스 프로세스 및 작업 관리 관련 소프트웨어
분류:BSD 라이선스 소프트웨어