天天看点

python通过什么来判断当前程序是否在_如何判断进程是否在Windows上的Python中响应...

python通过什么来判断当前程序是否在_如何判断进程是否在Windows上的Python中响应...

I am writing a python script to keep a buggy program open and I need to figure out if the program is not respoding and close it on windows. I can't quite figure out how to do this.

解决方案

On Windows you can do this:

import os

def isresponding(name):

os.system('tasklist /FI "IMAGENAME eq %s" /FI "STATUS eq running" > tmp.txt' % name)

tmp = open('tmp.txt', 'r')

a = tmp.readlines()

tmp.close()

if a[-1].split()[0] == name:

return True

else:

return False

It is more robust to use the PID though:

def isrespondingPID(PID):

os.system('tasklist /FI "PID eq %d" /FI "STATUS eq running" > tmp.txt' % PID)

tmp = open('tmp.txt', 'r')

a = tmp.readlines()

tmp.close()

if int(a[-1].split()[1]) == PID:

return True

else:

return False

From tasklist you can get more information than that. To get the "NOT RESPONDING" processes directly, just change "running" by "not responding" in the functions given. See more info here.