只是想知道是否有人能帮助我。我遇到的问题是我os.fork()获取几位信息并将它们发送到一个文件,但检查是否fork工作不正常。Python检查fork()过程是否完成
import sys
import time
import os
import re
ADDRESS = argv[1]
sendBytes = argv[2]
proID2 = os.fork()
if proID2 == 0:
os.system('ping -c 20 ' + ADDRESS + ' > testStuff2.txt')
os._exit(0)
print proID2
finn = True
while finn == True:
time.sleep(1)
finn = os.path.exists("/proc/" + str(proID2))
print os.path.exists("/proc/" + str(proID2))
print 'eeup out of it ' + str(proID2)
我认为os.path.exists()可能不是正确的使用方法。
谢谢。
检查/ proc/### /是否存在没有好的解决方案。没有定义PID是什么问题。在您的孩子终止后,下一个过程开始(可能完全独立于您的应用程序)*可以*获得相同的PID。通常情况下,它们是在周转时发布的,所以对于当前的内核,您的解决方案将最有可能始终工作,但您无法确定未来的内核版本或特殊情况下的情况,例如将计算机置于睡眠模式时,由于网络延迟,无响应的服务器或类似应用程序,相当一段时间,应用程序停滞不前。 – Alfe