0

我正在使用 LogMeIn OneToMany 任务将更新部署到一些运行我的应用程序的 PC。我有一个生成子 .exe 的 python 进程。它以“python.exe”(任务列表所说的)运行,标题为“管理员:AppRunner”。

我无法杀死 python.exe,因为还有其他我不想死的脚本正在运行。所以,我尝试根据标题名称杀死。以下内容在本地工作,但在通过 logmein 执行时不起作用:

os.system('taskkill /f /t /fi "WindowTitle eq Administrator:  AppRunner"')

我还有其他杀死其他可执行文件的 taskkills,它们工作正常,例如:

os.system('taskkill /f /im program.exe')

有什么明显的我遗漏的东西,或者有人可以帮助我用一种方法来调试这样的东西,这样我就可以解决这个问题?

4

1 回答 1

0

正如您自己所指出的,来自 Microsoft 帮助页面 taskkill

指定远程系统时,不支持 WINDOWTITLE 和 STATUS 过滤器。

相反,您可以让您的子进程编写一个 PIDfile:

import os

pid = os.getpid()
with open('c:\\temp\\myapp.pid','w') as pidfile:
    pidfile.write(str(pid))

然后当你想终止进程时,从文件中获取 PID 并使用/PIDswitch on taskkill 终止它。假设您已将 PID 读入变量mypid

os.system('taskkill /PID {} /f'.format(mypid))

于 2014-07-07T08:19:55.070 回答