python simple subprocess simple example

메인 프로세스와 함께 시작하고 끝나는 프로세스를 구현하기 위해서 아래와 같이 python에 내장된 subprocess module을 사용할 수 있다. 그런데 아래 코드는 맥/유니스 운영체제에서만 가능한 것 같다(맥에서만 확인). 윈도우에서는 아래 코드가 정상적으로 작동하지 않았다.

main

import subprocess
import time

cmd_arr = ["python", "subprocess_1.py"]
rec = subprocess.Popen(cmd_arr)
time.sleep(5)
rec.terminate() #sends signal SIGTERM to subprocess
rec.wait()
print("Whole process is terminated successfully.")

sub

#!/usr/bin/env /user/intelpython/latest/envs/py3env/bin/python

import time, sys, signal

#flag
activated = True

def terminate(signum, frame):
    global activated
    print(signum)
    print(frame)
    activated = False
signal.signal(signal.SIGTERM, terminate)

count = 1
while activated:
    count += 1
    time.sleep(0.5)
    print(f"sub---{count+1}")

print("Subprocess is terminated successfully.")

좋은 웹페이지 즐겨찾기