반응형

Python에서 자식 Process 죽었는지 확인하는 예제 코드입니다.

 

2022.12.31  최초작성



from time import sleep
from multiprocessing import Process
import subprocess
import os


# 자식 프로세스가 부모 프로세스보다 먼저 종료되도록 함
def task():
    for i in range(3):
        print('child process print', i)
        sleep(1)
    print('child process exit')

if __name__ == '__main__':

    child = Process(target=task)
    child.start()

    parent_pid = os.getpid()
    print('parent process pid = ', parent_pid)

    child_pid = child.pid
    print('child process pid = ', child_pid)

    print()

    

    # 검증용으로 실행
    cmd = ['ps', '--forest', str(child_pid), str(parent_pid)]

    subprocess.run(cmd)


    # 자식 프로세스 살아있는지 여부 출력
    for i in range(10):

        print('child alive ?', child.is_alive())
        sleep(1)



실행결과

parent process pid =  7209

child process pid =  7213

 

child process print 0

    PID TTY      STAT   TIME COMMAND

   7209 pts/1    S+     0:00 /bin/python3 /home/webnautes/test.py

   7213 pts/1    S+     0:00  \_ /bin/python3 /home/webnautes/test.py

child alive ? True

child process print 1

child alive ? True

child process print 2

child alive ? True

child process exit

child alive ? False

child alive ? False

child alive ? False

child alive ? False

child alive ? False

child alive ? False

child alive ? False



반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts