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

问题描述 投票:0回答:1

我有一个脚本,我只需使用subprocess模块在Python中调用子进程,如下所示:

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

我希望能够终止/终止这个过程。但是,在创建我的进程后,在我的应用程序中,我无法访问process对象,因此无法通常使用hereprocess.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模块是否可以这样?我将不胜感激任何建议。

python terminal subprocess terminate
1个回答
2
投票
import subprocess, os, signal

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

# later on
os.kill(processId, signal.SIGTERM)
© www.soinside.com 2019 - 2024. All rights reserved.