【发布时间】:2019-08-01 03:43:27
【问题描述】:
我有一个脚本,我只需使用 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 模块可以实现类似的功能吗?
【问题讨论】:
-
如果可以存储PID,为什么不能以同样的方式存储对对象的引用?
-
(需要明确的是,它是
process.pid,记录在docs.python.org/3/library/subprocess.html#subprocess.Popen.pid) -
因为我正在使用
Dash,而Dash中的回调的行为类似于本地函数,因为它们的变量也是本地的,除了只能返回字符串等基本变量。
标签: python terminal subprocess terminate