【问题标题】:How to check in Python if Windows process is running when its service has stopped?如果 Windows 进程在其服务停止时正在运行,如何检查 Python?
【发布时间】:2017-08-16 14:11:39
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    您可以尝试psutil 包,尤其是psutil.process_iter()(在运行的进程上返回一个迭代器)。此包用于其他分析器包。流程函数的文档可以在here找到。

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

    【讨论】:

      【解决方案2】:
      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 产品。至少它应该让你知道如何做你想做的事。

      希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-04
        • 1970-01-01
        • 2012-08-23
        • 1970-01-01
        • 2015-05-28
        • 1970-01-01
        相关资源
        最近更新 更多