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

时间:2017-08-16 14:11:39

标签: python windows service process long-running-processes

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

2 个答案:

答案 0 :(得分:1)

您可以尝试a2enmod rewrite包,特别是psutil(返回正在运行的进程的迭代器)。此包用于其他探查器包。可以找到有关流程功能的文档here

我不知道如果在父母/子女pid关系中不明显,您将如何找到有问题的服务的流程ID。我没有在Windows上测试过这个。

答案 1 :(得分:0)

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))

Source

重要提示!!! 正如本教程的作者所说,他使用的平台是Windows Server 2012,但此代码最有可能与其他Windows产品一起使用。至少它应该给你和想法如何做你想要的。

希望它的帮助!