天天看點

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.