我一直在这个问题一段时间了,我无法解决它。我正在做子进程,然后这些子进程打开更多进程(实际上是硒webdrivers)。 webdriver很容易崩溃,所以我建立了这个分层系统,以便主进程可以让子进程,并在需要时杀死/重制它们。无法使用硒线关闭进程
我面对的问题是如果我运行主线程并按Ctrl + C所有的孩子和这些孩子(浏览器)的孩子死亡。但是,当我尝试以编程方式执行此操作时,无论是((Popen)proc).kill(),我都尝试过SIGINT,SIGTERM。我试过,终止,os.kill,os,killpg。无论我做什么硒进程都不会死,但是当我按Ctrl + C时,它们都会死亡。
代码: 以下是我如何制作线程。这怎么会引起问题?
proc = subprocess.Popen(["python" , module_path() + "/scraper.py"], stdout=subprocess.PIPE ,stdin=subprocess.PIPE)
所以我的主要问题是,有没有办法来调用按Ctrl + C效果发生在终端。我最初尝试使用线程,但他们只是保持死锁(为什么我不知道,他们没有共享内存,没有依赖)。 Python不是我的主要语言,任何帮助都是沉淀的。
谢谢。 Kieran
我曾经有同样的问题,这很容易。你所要做的就是将关闭事件传递给firefox浏览器,然后传递给子进程。如果你不知道,我会在几个小时后发布我的答案。 :) – enginefree