如果父进程(通过redis队列)超时,如何关闭pupeter页?

pcww981p  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(335)

使用subprocess.popen生成节点的im生成傀儡程序会话。但是,当节点作业花费太长时间时,python进程就会超时(我使用的是pythonrq,它内置了timeout)。
但是,当这种情况发生时。。python工作进程正常地结束了,但是我可以看到puppetter页面仍然在运行。python工作进程以某种方式与节点“断开连接”(kill信号没有被发送?)
我想nodejs/puppeeteer页被杀死(通过超时或键盘中断)。这就是我所拥有的,但是当命令行python进程被ctrl-c'd或rq超时时,puppeter页面仍然可见:

with Popen(command, shell=True, stdout=PIPE, stderr=PIPE) as process:
    try:
        print(process.pid)
        process.wait()
        stdout, stderr = process.communicate()

        print("stdout")
        print(stdout)

        print("stderr")
        print(stderr)

    except JobTimeoutException:
        pass
    except KeyboardInterrupt:
        try:
            process.terminate()
        except OSError:
            pass
        process.wait()
    finally:
        # if process.poll() is None:
        print("process killed")
        process.send_signal(signal.SIGINT)
        # stdout, stderr = process.communicate()

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题