如何杀死从Python脚本中启动的可执行文件

时间:2018-01-10 18:10:32

标签: python python-2.7

我正在编写一个Python脚本,需要使用偶尔陷入无限循环的可执行文件。卡在此循环中时,可执行文件会将相同的文本行吐出到标准输出。我打算捕获,一旦我这样做,杀死可执行文件。当我手动运行此脚本时,我可以使用 CTRL C

以编程方式从Python脚本中删除可执行文件的正确方法是什么?我使用的是Python 2.7,但我对3.x解决方案也很好奇。我正在使用os.system()调用。

1 个答案:

答案 0 :(得分:1)

您可以尝试捕获SIGINT关闭所有subprocess实例,然后执行系统退出。

#!/usr/bin/env python
import signal
import sys
import subprocess

p = subprocess.Popen(...)

# define how to handle CTRL+C
def signal_handler(signal, frame):
    print('You pressed Ctrl+C!')
    p.kill()
    sys.exit(0)

# Tell it to handle CTRL+C
signal.signal(signal.SIGINT, signal_handler)