【发布时间】:2019-01-25 08:20:29
【问题描述】:
我有一个main.py,如下:
#!/usr/bin/env python3
import time
import os
import subprocess
fs = './runner.py'
child_process = subprocess.Popen(
'/usr/bin/python3 ' + fs,
shell=True
)
print('main process pid', os.getpid())
print('sub process pid', child_process.pid)
time.sleep(10)
os.system('kill ' + str(child_process.pid))
还有runner.py:
#!/usr/bin/env python3
import os
import time
TIME_TO_CHECK_STATUS = 1
def init():
pid = os.getpid()
print('inside child process:')
print(' --> pid: ', pid)
def check():
time.sleep(TIME_TO_CHECK_STATUS)
check()
return pid
return check()
if __name__ == '__main__':
init()
在终端中运行 main.py 给出以下结果:
为什么我们从main.py得到的子进程的id和我们从里面的子进程得到的不一样?
【问题讨论】:
标签: python linux ubuntu process