본문 바로가기
테크/기타

[Python] fork (자식 프로세스 생성하기)

by ahnne 2015. 8. 4.


※ 파이썬 버전 : Python 2.3.4


* 현재 프로세스의 pid 가져오기

    - os.getpid()


* 자식 프로세스 fork 하여 부모,자식 프로세스 판별하기

    - os.fork()

    - 리턴값이 0이면, 자식 프로세스

    - 리턴값이 0보다 크면, 부모 프로세스


* 샘플

    - 부모는 두 개의 자식 프로세스를 생성하여 각 pid 값을 childs 변수에 저장한다.

    - 각 자식 프로세스는 5초간 수행되고 종료한다.

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
import os
import time
import sys
 
#childs = {}
childs = {'$pa':'first child''$pb':'second child'}
 
print "main start pid: %s" % (os.getpid())
 
for key in childs:
        newpid = os.fork()
 
        if newpid == 0:
                print "child %s" % (os.getpid())
                cnt = 1
                sleep_time = 1
                while True:
                        if cnt > 5:
                                print "child end"
                                break
                        print cnt
                        time.sleep(sleep_time)
                        cnt += 1
                sys.exit(0)
 
        else:
                childs[key] = newpid
                print "parent got newpid:%s" % (newpid)
 
for key in childs:
        print childs[key]

print "main end"

cs