본문으로 바로가기
COMMUNITY모든 이야기

subprocess.run으로 실행한 쉘 스크립트의 실시간 로그 출력 안 됨

빗방울 2026.10.30 21:13 2분 읽기 조회 8

외부 bash 스크립트를 실행해서 로그를 실시간으로 모니터링해야 합니다. 현재는 프로세스가 완전히 종료된 후에만 결과가 한꺼번에 출력됩니다.

코드:

import subprocess

# dummy.sh: for i in {1..5}; do echo "Step $i"; sleep 1; done
cmd = ["sh", "dummy.sh"]
process = subprocess.run(
    cmd, 
    stdout=subprocess.PIPE, 
    stderr=subprocess.PIPE, 
    text=True
)
print(process.stdout)

오류: 스크립트 실행 중에는 아무것도 출력되지 않다가, 5초 뒤 종료 시점에 모든 로그가 한 번에 출력됨.

시도: `stdout=subprocess.STDOUT` 설정 및 `shell=True` 옵션 적용.

질문: `subprocess.run` 대신 어떤 방식을 써야 stdout을 실시간으로 print 할 수 있습니까?

모든 이야기1455

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1455개의 이야기
댓글