【发布时间】:2016-02-03 10:42:09
【问题描述】:
当我收到键盘中断 (ctrl-c) 时,我需要停止在 Python 中使用 subprocess.call 创建的进程
问题是 p 在完成执行之前没有获得分配给它的值
p = subprocess.call(cmd)
所以我不能使用os.kill 来杀死它。另外,由于原因,不能使用shell=True。
我想做的是:
try:
p = subprocess.call(cmd)
except KeyboardInterrupt:
os.kill(p.pid,signal.SIGTERM)
sys.exit('exited after ctrl-c')
【问题讨论】:
-
您可以获得子进程的 pid,如下所述:stackoverflow.com/questions/3332043/…
-
谢谢,但它是 *nix 特定的。我也需要在 Windows 上兼容。
标签: python process subprocess kill