※ 파이썬 버전 : 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 |