python脚本被测试stdout杀死

时间:2014-05-21 23:55:04

标签: python-3.x cgi

我正在编写一个CGI脚本,该脚本应该在用户断开连接之前向用户发送数据,然后再运行日志记录任务。

问题:当客户端断开连接(由于无法写入stdout缓冲区而检测到)时,代替中断执行和日志记录完成,脚本结束或被终止(我无法在任何地方找到任何日志,以了解此退出是如何发生的)

以下是代码片段:

        for block in r.iter_content(262144):
            if stopRecord == True:
                r.close()
            if not block:
                break
            if not sys.stdout.buffer.write(block): #The code fails here after a client disconnects
                break
        cacheTemp.close()

        ####write data to other logs and exit gracefully####

我尝试使用"除了:"以及#34;除了SystemExit:"但无济于事。有谁能解决这个问题? (它是一个CGI脚本,应该在客户端终止其连接时记录)

更新:我现在尝试使用信号来中断脚本中的kill进程,这也没有用。我在哪里可以看到错误日志?我确切地知道哪条线路失败以及在哪种条件下,但是如果我在终端中运行了一个失败的脚本,那么就没有错误日志或类似的东西。

1 个答案:

答案 0 :(得分:0)

当你说它杀死程序时,你的意思是主要的python进程退出 - 而不是由一些抛出的异常?这有点奇怪。解决方法可能是让任务在单独的Threadprocess中运行,然后监视它直到它死亡并随后执行第二个任务。