我一直在這個問題一段時間了,我無法解決它。我正在做子進程,然後這些子進程打開更多進程(實際上是硒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