프로젝트 소개
running-process는 Rust로 작성되고 일급 Python 바인딩을 갖춘 크로스 플랫폼 운영체제 프로세스 런타임이다. 프로세스 생성, 파이프, PTY, 프로세스 트리, 격리(containment), 관찰, 분리된 데몬, 브로커 기반 장기 실행 서비스에 대한 통합 추상화를 제공한다.
이 라이브러리는 플랫폼 간 OS 프로세스 동작의 비이식성을 해결한다. Windows Job Objects와 ConPTY, Unix 프로세스 그룹과 시그널, Linux ptrace 추적, 명명된 파이프, 자식 프로세스 수거(reaping), 터미널 제어는 모두 서로 다른 수명 및 실패 규칙을 가진다. running-process는 이를 Rust 코어에 캡슐화하고 Rust API와 Pythonic 동기/비동기(asyncio) 인터페이스 양쪽으로 노출한다.
주요 기능은 다음과 같다.
- 명령과 스트림: 동시 stdout/stderr 캡처, 제한된 대기, 타입이 지정된 종료, 텍스트 및 바이트 처리.
- 대화형 터미널: Windows(ConPTY), Linux, macOS에서의 네이티브 PTY와 expect 규칙, 입력 릴레이, 크기 조정, 인터럽트, 유휴 감지.
- 프로세스 트리 수명: 격리, 재귀적 terminate/kill, 자손 정리, 발원자(originator) 태깅, 좀비 인식 추적.
- 관찰: 수명주기 이벤트, 프로세스 감시, ptrace를 통한 정확한 Linux 트리 추적, 스택 캡처, 명시적 손실 기록.
- 내구성 있는 실행: 분리 실행, 데몬 수명주기, 브로커 협상, 세션 릴레이, 상태 프로브, 관리자 진단.
- 운영자 도구: 감독 CLI, 정리 매니페스트, 터미널 기능 감지, 프로세스 대시보드.
Python 패키지는 별도의 재구현이 아니다. 그 바인딩은 네이티브 소비자가 사용하는 것과 동일한 Rust 프로세스 엔진을 호출한다. subprocess_run, RunningProcess, InteractiveProcess, ContainedProcessGroup 같은 기본 API는 브로커나 데몬 설정 없이 작동한다. 데몬/브로커 프레임워크는 감독되는 세션 간 프로세스 관리를 위해 제공된다.
Windows 10에서 이 라이브러리는 현대적인 터미널 동작을 위해 ConPTY 사이드카를 투명하게 가져와 캐시하며, SHA-256 검증과 kernel32로의 오프라인 폴백을 제공한다. 터미널 그래픽 기능 감지(Sixel, Kitty, iTerm2)는 Rust 호출자에게 제공된다.
CLI 래퍼는 비활성 및 벽시계(wall-clock) 타임아웃, 트리 종료, 누수 감지를 갖춘 감독 명령 실행을 제공한다. 정리 유틸리티는 휴면 데몬 루트를 정리하기 위해 브로커 캐시 매니페스트를 읽는다.
이 라이브러리는 Soldr에서 검증되었으며, Soldr는 이를 프로세스 생성 경계이자 데몬/브로커 기반으로 사용한다. Linux, macOS, Windows를 포괄하는 CI와 함께 PyPI와 Crates.io에 배포된다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.