Python:终止子进程而无权访问subprocess.Popen对象?

时间:2019-03-10 19:26:24

标签: python terminal subprocess terminate

我有一个脚本,可以使用subprocess模块在​​Python中简单地调用子进程,如下所示:

import subprocess
process = subprocess.Popen(['python3', 'some_Python_script.py']

我希望能够终止/终止该过程。但是,在创建过程之后,在我的应用程序中,我无法访问process对象,因此无法按照here所述使用process.kill终止该对象。

但是,有没有一种方法可以“存储”该进程的某些唯一ID,并可以在以后(如果它仍在运行)对其进行操作/终止?

例如,我在想类似的东西

process = subprocess.Popen(['python3', 'some_Python_script.py']
process_ID_string = process.id
...
...
*later on*
subprocess.kill(process_id = process_ID_string)

subprocess模块是否可以实现这种功能?我希望对此提出任何建议。

1 个答案:

答案 0 :(得分:2)

import subprocess, os, signal

process = subprocess.Popen(['python3', 'some_Python_script.py']
processId = process.pid

# later on
os.kill(processId, signal.SIGTERM)