gpt4 book ai didi

Python 不使用 shell 杀死进程

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:16 30 4
gpt4 key购买 nike

我正在编写一个程序来在 Windows 10 上进行一些进程管理。

为了终止不需要的进程,我使用以下命令:

import subprocess
subprocess.Popen("taskkill /F /im "+unwantedProcess, shell=True, stdout=subprocess.PIPE)

其中不需要的进程是我想要杀死的进程的全名。我也尝试过使用:

os.system("taskkill /F /im "+unwantedProcess)

现在,当使用 pyinstaller 解释或编译它时,它可以正常工作。当我使用

时出现问题
--noconsole

pyinstaller 中的命令。它适用于所有其他实例,除非没有控制台(因为我不希望在后台打开控制台)。知道如何解决这个问题吗?

编辑:编辑代码后,我插入了一个非常基本的错误捕获语句,如下所示:

try:
subprocess.Popen("taskkill /F /im skype.exe", shell=True, stdout=subprocess.PIPE)
except Exception as e:
f = open("error.txt", "w")
f.write(str(e))
f.close()

使用skype作为示例进程来杀死。当使用控制台解释或编译程序时,它仍然成功地杀死了它。但是,当使用

编译时
--noconsole

再次命令我在错误文件中得到了这个输出:

[Error 6] The handle is invalid

当我运行这个程序时,Skype 肯定是打开的

最佳答案

事实上,您使用 --no-console 选项调用 python 会使您的进程不适合控制台 I/O(即您需要调用 taskkill )。

如果您确实想隐藏控制台并仍然拥有有效的进程句柄,可以采用不同的方法来实现。查看 this question 的答案

关于Python 不使用 shell 杀死进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34732686/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com