我正在使用LogMeIn OneToMany任务将更新部署到运行我的应用程序的某些PC上。我有一个生成子.exe的python进程。它以"python.exe“(任务列表中的内容)运行,并有一个名为"Administrator: AppRunner”的标题。
我不能杀死python.exe,因为还有其他脚本正在运行,我不想死。所以,我试着根据标题名杀人。以下内容在本地工作,但在通过logmein执行时不起作用:
os.system('taskkill /f /t /fi "WindowTitle eq Administrator: AppRunner"')我还有其他杀死其他可执行文件的任务,它们可以正常工作,例如:
os.system('taskkill /f /im program.exe')有什么明显的东西我遗漏了吗?或者有人能帮我调试这样的东西,这样我就可以找到一个问题的钩子了吗?
发布于 2014-07-07 08:19:55
正如您自己已经注意到的,来自Microsoft帮助页面中的taskkill
当指定远程系统时,不支持WINDOWTITLE和状态过滤器。
相反,可以让您的子进程编写一个PIDfile:
import os
pid = os.getpid()
with open('c:\\temp\\myapp.pid','w') as pidfile:
pidfile.write(str(pid))然后,当您想要终止进程时,从文件中获取PID并使用/PID开关将其关闭。假设您已经将PID读入变量mypid
os.system('taskkill /PID {} /f'.format(mypid))
https://stackoverflow.com/questions/24604507
复制相似问题