CChildHarbor
AI 코딩 작업 공간

시간제한 Python 자식 프로세스

최대 4096자의 신뢰할 수 있는 Python 코드를 기존 디렉터리에서 50–5000 ms 제한으로 실행하세요.

● ● ●ChildHarbor●
작업 흐름 · 시간제한 Python 자식 프로세스 ×
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
✳시간제한 Python 자식 프로세스
✓ 변경 사항적용하기 전에 검토하세요 ↗
작업 공간 예시 화면
적용하기 전에 검토하세요실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
모델기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
프로젝트Unicode와 실패 종료 및 직접 자식 정리를 시험하고 잘못된 제한을 거부하며 격리나 후손 종료를 보장하지 마세요.
작업 흐름

시간제한 Python 자식 프로세스

작업 흐름 ↗
작업 흐름
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
AI 코딩 작업 공간

신뢰 경계를 유지하며 프로세스 래퍼를 검토하세요

ChildHarbor는 프로젝트 대화에서 프로세스 관리 코드를 살펴보는 Windows AI 코딩 클라이언트입니다. 어떤 코드를 신뢰하여 실행하는지, 호출자가 무엇을 관측해야 하는지 명시하며 시작하세요. 제안이 목적과 한계를 모두 보존하도록 변경을 제안하기 전에 연결된 모델에게 기존 래퍼를 살펴보도록 요청하세요.

구체적인 작업은 기존 작업 디렉터리와 제한된 타임아웃을 사용하는 신뢰된 Python 자식 프로세스 래퍼입니다. 유니코드 출력, 실패 종료, 직접 자식이 시간 제한을 초과했을 때의 동작을 논의하세요. 이 요구사항을 보안 격리와 구분하세요. 신뢰된 코드의 실행을 허용한다고 해서 래퍼가 임의 입력용 샌드박스가 되는 것은 아닙니다.

자체 프로세스 테스트 사례에 비추어 수정 제안을 검토하세요. 개발 환경에서 캡처한 출력, 종료 상태, 직접 자식의 타임아웃 경로를 확인하세요. 하위 프로세스가 중요하다면 추가 요구사항을 명시적으로 정의하고 조사하세요. 자식 하나의 타임아웃 테스트 성공은 프로세스 트리 전체가 정리된다는 증거가 아니므로 검토에서 그 차이를 유지하세요.

ChildHarbor는 OpenAI 호환 또는 Anthropic 엔드포인트 연결을 지원하며 필요한 경우 인증 정보를 사용합니다. 엔드포인트가 제공하면 필터 없는 AI 모델을 선택할 수 있습니다. 서버와 모델이 컨텍스트, 사용 가능한 도구, 제한을 결정합니다. 모델을 선택한다고 신뢰할 수 없는 코드 실행이 허가되거나 제안 래퍼가 검증되는 것은 아닙니다.

프로세스 실행 코드를 바꾸기 전 질문

신뢰된 입력에 관해 무엇을 명시해야 하나요?

누가 스크립트를 제공하고 애플리케이션이 왜 실행을 허용하는지 밝히세요. 작업에서 그 가정을 명시적으로 유지하세요. 신뢰할 수 없는 사용자가 스크립트를 제공할 수 있다면 보안 문제는 기존 래퍼에 타임아웃을 추가하는 것보다 넓습니다.

타임아웃이면 모든 하위 프로세스도 종료되나요?

아니요. 구현이 정확히 어느 프로세스를 제어하는지 검토하고 자체 환경에서 테스트하세요. 애플리케이션에 프로세스 트리 정리가 필요하다면 별도의 명시적 요구사항으로 삼고, 직접 자식 처리에서 추정하지 말고 플랫폼별 구현을 살펴보세요.

실패 종료뿐 아니라 유니코드 출력도 테스트하는 이유는 무엇인가요?

래퍼의 호출자 계약에서 서로 다른 부분을 실행하기 때문입니다. 제안이 둘 다 보존하도록 예상 텍스트와 종료 동작을 포함하세요. 프로세스가 올바르게 실행되어도 출력 디코딩이나 오류 보고로 인해 애플리케이션에 쓸 수 없는 결과가 전달될 수 있습니다.

대화에서 제안한 모든 스크립트를 실행해야 하나요?

실행 전에 코드와 영향을 검토하세요. 작업 공간의 대화는 제안 설명을 도울 수 있지만 신뢰 여부는 사용자가 결정합니다. 적절한 프로젝트 테스트 사례를 사용하고 모델 생성 텍스트를 임의 연산 실행의 허가로 취급하지 마세요.

Windows용 다운로드 ↗

ChildHarbor · 업데이트 2026-10-25