在使用CGI的python 2.7中,如何检查forked进程是否完成

时间:2016-08-25 21:36:29

标签: python subprocess cgi

所以我有一组python脚本。为了创建一个简单的GUI,我一直在组合html和CGI。到现在为止还挺好。但是,我的一个脚本需要很长时间才能完成(> 2小时)。很明显,当我在我的服务器上运行它(mac上的localhost)时,我得到一个"网关超时错误"。我正在阅读关于分支子过程的信息,并检查过程是否完成 这就是我提出的,但它不起作用:(。

import  os, time
#upstream stuff happening as part of main script
pid=os.fork()
    if pid==0: 
        os.system("external_program") #this program will make "text.txt" as output
        exit()

while os.stat(""text.txt").st_size == 0: # check whether text.txt has been written, if not print "processing" and continue to wait
    print "processing"
    sys.stdout.flush()
    time.sleep(300)
#downstream stuff happening

同样,任何帮助表示赞赏

1 个答案:

答案 0 :(得分:-1)

你试过这个吗?

import os
processing = len(os.popen('ps aux | grep yourscript.py').readlines()) > 2

它告诉您脚本是否仍在运行(返回布尔值)。