Python检查fork()进程是否完成

2024-05-19 07:56:30 发布

您现在位置:Python中文网/ 问答频道 /正文

只是想知道是否有人能帮我。我遇到的问题是,我os.fork()获取一些信息并将它们发送到一个文件,但要检查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()可能不是正确的用法。

谢谢。


Tags: pathimport信息truetimeosaddressexists
2条回答

虽然您可以使用os.fork()os.wait()(参见下面的示例),但最好使用subprocess模块中的方法。

import os, sys

child_pid = os.fork()
if child_pid == 0:
    # child process
    os.system('ping -c 20 www.google.com >/tmp/ping.out')
    sys.exit(0)

print "In the parent, child pid is %d" % child_pid
#pid, status = os.wait()
pid, status = os.waitpid(child_pid, 0)
print "wait returned, pid = %d, status = %d" % (pid, status)

要等待子进程终止,请使用os.waitXXX()函数之一,例如^{}。这个方法是可靠的;作为奖励,它会给你状态信息。

相关问题 更多 >

    热门问题