我有這樣的代碼爲fork
從父進程的子過程,我知道:如何從一個子進程派生子進程分別
os.fork()
創建先前的Python會話的副本,並打開它並行,os.fork()
返回新進程的ID。
我想分別從一個子進程派生一個子進程,但總是從父進程派生出來。如何做到這一點。
import os
def child():
print('this is child', os.getpgid())
os._exit()
def parent():
while True:
newpid = os.fork()
if newpid ==0:
child()
else:
pids = (os.getpid(), newpid)
print("parent: %d, child: %d\n", pids)
reply = input("q for quit/c for new fork\n")
if reply == 'c':
continue
else:
break
parent()
以上代碼的輸出:
parent: %d, child: %d
(1669, 3685)
q for quit/c for new fork
c
parent: %d, child: %d
(1669, 3686)
q for quit/c for new fork
c
parent: %d, child: %d
(1669, 3688)
q for quit/c for new fork
c
parent: %d, child: %d
(1669, 3689)
q for quit/c for new fork
q
'我想從一個孩子fork一個子進程process'那麼,爲什麼不試試呢?現在你的子進程只打印一條消息並退出。 –