如何解决如何杀死 Qt QProcess 运行的 MATLAB 批处理?
我目前有一个 Python 程序,它以批处理方式调用 MATLAB 脚本,如下所示:
matlab = QProcess()
matlab.start('matlab -nofigureWindows -batch "cd(users/script_directory/); MyScript.m;"')
#^ command to start MATLAB batch process in CMD
我遇到的问题是,一旦此批处理开始,就无法终止它。因此,如果我的 Python 应用程序被强制关闭,MATLAB 脚本会继续运行并导致各种问题,这意味着我需要在应用程序关闭时终止该进程。
我将 MATLAB 脚本作为 QProcess 调用,并在 MATLAB 脚本完成执行之前强制关闭 Python 应用程序时收到以下消息:
QProcess: Destroyed while process ("matlab") is still running.
有了这个,我该如何停止批处理 MATLAB 进程?在 CMD 中使用 'ctrl-c' 有时对我有用,可以终止进程,但我需要它保持一致才能使 Python 正常工作。
同样,我可以让它“强制退出”或“重新启动”批处理 MATLAB 或任何类似的东西来清除所有正在运行的进程吗?
解决方法
一种蛮力杀死它的方法是在应用程序开始时通过 process and system utilities library 杀死任何 matlab 进程:
import psutil
for process in psutil.process_iter():
if process.name().lower() == 'matlab.exe':
process.terminate()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。