python - Python:终止子进程而不访问 subprocess.Popen 对象?
问题描述
我有一个脚本,我只需使用该subprocess
模块在 Python 中调用一个子进程,如下所示:
import subprocess
process = subprocess.Popen(['python3', 'some_Python_script.py']
我希望能够终止/终止这个进程。但是,在创建我的进程后,在我的应用程序中我无法访问该process
对象,因此无法按照此处所述使用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
模块可以做到这样的事情吗?
解决方案
import subprocess, os, signal
process = subprocess.Popen(['python3', 'some_Python_script.py']
processId = process.pid
# later on
os.kill(processId, signal.SIGTERM)
推荐阅读
- asp.net - 方法前的参数在asp.net核心中意味着什么?
- sql - 返回多行的子查询
- reactjs - react native:图片正在使用 expo-image-picker 上传,但不使用 react-native-image-picker 上传
- java - Java Apache poi:Word - 无法从文档中提取特定文本以及编号和表格
- javascript - tinymce 动态添加多个菜单项到下拉菜单-全部 onclick 直接到最后一个菜单项单击
- json - 我在谷歌表格中找不到要使用 ImportJSON 的数据 JSON 文件
- ios - PUBNUB 操作经常抛出 PNTimeoutCategory
- python - Python TypeError - :'str'对象不可调用
- typescript - mocha 和 ts-node UnhandledPromiseRejectionWarning:TypeError: Cannot convert undefined or null to object
- python - 如何在 Keras/Tensorflow 中编写使用循环/迭代和参考 numpy 代码的自定义损失函数