如果Windows进程在其服务停止时正在运行,如何检查Python?



某些 Windows 进程在其服务停止后会继续运行几分钟。Python中有没有办法检测到这一点?

您可以尝试psutil包,特别是psutil.process_iter()(在正在运行的进程上返回迭代器(。此包用于其他探查器包。有关流程函数的文档可在此处找到。

我不知道如果相关服务的进程 ID 在父/子 pid 关系中不明显,您将如何找到它们。我还没有在Windows上测试过这个。

import os
def getTasks(name):
r = os.popen('tasklist /v').read().strip().split('n')
print ('# of tasks is %s' % (len(r)))
for i in range(len(r)):
s = r[i]
if name in r[i]:
print ('%s in r[i]' %(name))
return r[i]
return []
if __name__ == '__main__':
'''
This code checks tasklist, and will print the status of a code
'''
imgName = 'dwm.exe'
notResponding = 'Not Responding'
r = getTasks(imgName)
if not r:
print('%s - No such process' % (imgName)) 
elif 'Not Responding' in r:
print('%s is Not responding' % (imgName))
else:
print('%s is Running or Unknown' % (imgName))

重要说明!!正如本教程的作者所说,他使用的平台是Windows Server 2012,但此代码很可能适用于其他Windows产品。至少它应该给你和想法如何做你想做的事。

希望它有帮助!

最新更新