Nếu bạn đang ở trên một hệ thống unix, bạn có thể sử dụng os.fork:
import os
import time
pid=os.fork()
if pid:
# parent
while True:
print("I'm the parent")
time.sleep(0.5)
else:
# child
while True:
print("I'm just a child")
time.sleep(0.5)
Chạy điều này tạo ra hai quá trình. Bạn có thể giết cha mẹ mà không giết chết đứa trẻ. Ví dụ, khi bạn chạy script bạn sẽ thấy một cái gì đó như:
% script.py
I'm the parent
I'm just a child
I'm the parent
I'm just a child
...
Dừng kịch bản với ctrl-Z:
^Z
[1]+ Stopped script.py
Tìm số quá trình ID cho phụ huynh. Nó sẽ là nhỏ hơn của hai số quá trình ID kể từ khi cha mẹ đến đầu tiên:
% ps axuw | grep script.py
unutbu 6826 0.1 0.1 33792 6388 pts/24 T 15:09 0:00 python /home/unutbu/pybin/script.py
unutbu 6827 0.0 0.1 33792 4352 pts/24 T 15:09 0:00 python /home/unutbu/pybin/script.py
unutbu 6832 0.0 0.0 17472 952 pts/24 S+ 15:09 0:00 grep --color=auto script.py
Giết quá trình cha mẹ:
% kill 6826
Restore script.py để foreground:
% fg
script.py
Terminated
Bạn sẽ thấy quá trình con vẫn đang chạy:
% I'm just a child
I'm just a child
I'm just a child
...
Giết đứa trẻ (trong một nhà ga mới) với
% kill 6827
Cảm ơn, dường như tôi không RTFM đủ gần. – JacquesB