最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python定時檢測無響應(yīng)進(jìn)程并重啟的實(shí)例代碼

 更新時間:2019年04月22日 08:56:28   作者:零壹視界  
這篇文章主要介紹了python定時檢測無響應(yīng)進(jìn)程并重啟的實(shí)例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

總有一些程序在windows平臺表現(xiàn)不穩(wěn)定,動不動一段時間就無響應(yīng),但又不得不用,每次都是發(fā)現(xiàn)問題了手動重啟,現(xiàn)在寫個腳本定時檢測進(jìn)程是否正常,自動重啟。

涉及知識點(diǎn)

  1. schedule定時任務(wù)調(diào)度
  2. os.popen運(yùn)行程序并讀取解析運(yùn)行結(jié)果

代碼分解

腳本主入口

if __name__ == '__main__':
  #每5秒執(zhí)行檢查任務(wù)
  schedule.every(5).seconds.do(check_job)
  #此處固定寫法,意思是每秒鐘schedule看下是否有pending的任務(wù),有就執(zhí)行
  while True:
    schedule.run_pending()
    time.sleep(1)

schedule的其它示例

import schedule
import time
def job(message='stuff'):
  print("I'm working on:", message)
#每10分鐘
schedule.every(10).minutes.do(job)
#每小時
schedule.every().hour.do(job, message='things')
#每天10點(diǎn)30分
schedule.every().day.at("10:30").do(job)
while True:
  schedule.run_pending()
  time.sleep(1)

檢查無響應(yīng)進(jìn)程并重啟

def check_job():
  process_name = "xx.exe"
  not_respond_list = list_not_response(process_name)
  if len(not_respond_list) <= 0:
    return
  pid_params = " ".join(["/PID " + pid for pid in not_respond_list])
  os.popen("taskkill /F " + pid_params)
  if len(list_process(process_name)) <= 0:
    start_program(r'E:\xx\xx.exe')
}

查找符合條件的進(jìn)程列表

def list_process(process_name, not_respond=False):
  cmd = 'tasklist /FI "IMAGENAME eq %s"'
  if not_respond:
    cmd = cmd + ' /FI "STATUS eq Not Responding"'
  output = os.popen(cmd % process_name)
  return parse_output(output.read())
def list_not_response(process_name):
  return list_process(process_name, True)

解析命令執(zhí)行結(jié)果

def parse_output(output):
  print(output)
  pid_list = []
  lines = output.strip().split("\n")
  if len(lines) > 2:
    for line in lines[2:]:
      pid_list.append(line.split()[1])
  return pid_list

tasklist示例輸出

映像名稱            PID 會話名       會話#    內(nèi)存使用
========================= ======== ================ =========== ============
WizChromeProcess.exe     1620 Console          1   32,572 K

完整代碼

import os
import time
import schedule
def parse_output(output):
  print(output)
  pid_list = []
  lines = output.strip().split("\n")
  if len(lines) > 2:
    for line in lines[2:]:
      pid_list.append(line.split()[1])
  return pid_list
def list_not_response(process_name):
  return list_process(process_name, True)
def list_process(process_name, not_respond=False):
  cmd = 'tasklist /FI "IMAGENAME eq %s"'
  if not_respond:
    cmd = cmd + ' /FI "STATUS eq Not Responding"'
  output = os.popen(cmd % process_name)
  return parse_output(output.read())
def start_program(program):
  os.popen(program)
def check_job():
  process_name = "xx.exe"
  not_respond_list = list_not_response(process_name)
  if len(not_respond_list) <= 0:
    return
  pid_params = " ".join(["/PID " + pid for pid in not_respond_list])
  os.popen("taskkill /F " + pid_params)
  if len(list_process(process_name)) <= 0:
    start_program(r'E:\xxx\xx.exe')
if __name__ == '__main__':
  schedule.every(5).seconds.do(check_job)
  while True:
    schedule.run_pending()
    time.sleep(1)

總結(jié)

以上所述是小編給大家介紹的python定時檢測無響應(yīng)進(jìn)程并重啟的實(shí)例代碼 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 深入詳解Python中生成器的原理與應(yīng)用

    深入詳解Python中生成器的原理與應(yīng)用

    生成器 是Python中一種非常實(shí)用的特性,它能幫助我們編寫高效的代碼,本文將詳細(xì)為大家介紹生成器的原理、用法以及實(shí)際應(yīng)用場景,有需要的小伙伴可以了解下
    2023-12-12
  • Python logging日志模塊使用指南

    Python logging日志模塊使用指南

    Python 的 logging 模塊提供了標(biāo)準(zhǔn)的日志接口,可以通過它存儲各種格式的日志,日志記錄提供了一組便利功能,用于簡單的日志記錄用法,本文就給大家簡單的介紹一下Python logging日志模塊使用方法,需要的朋友可以參考下
    2023-08-08
  • Python+Opencv實(shí)現(xiàn)圖像模板匹配詳解

    Python+Opencv實(shí)現(xiàn)圖像模板匹配詳解

    模板匹配可以看作是對象檢測的一種非?;镜男问?。使用模板匹配,我們可以使用包含要檢測對象的“模板”來檢測輸入圖像中的對象。本文為大家介紹了圖像模板匹配的實(shí)現(xiàn)方法,需要的可以參考一下
    2022-09-09
  • Python編程密碼學(xué)文件加密與解密代碼解析

    Python編程密碼學(xué)文件加密與解密代碼解析

    這篇文章主要為大家介紹了Python編程密碼學(xué)文件加密與解密,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python3 pathlib庫Path類方法總結(jié)

    python3 pathlib庫Path類方法總結(jié)

    這篇文章主要介紹了python3 pathlib庫Path類方法總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個數(shù)實(shí)例

    python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個數(shù)實(shí)例

    今天小編就為大家分享一篇python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個數(shù)實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Django序列化中SerializerMethodField的使用詳解

    Django序列化中SerializerMethodField的使用詳解

    這篇文章主要介紹了Django序列化中SerializerMethodField的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • python正則表達(dá)式(re模塊)的使用詳解

    python正則表達(dá)式(re模塊)的使用詳解

    正則表達(dá)式是用來匹配字符串非常強(qiáng)大的工具,在其他編程語言中同樣有正則表達(dá)式的概念,Python同樣不例外,下面這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式(re模塊)使用的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • python去除文件中重復(fù)的行實(shí)例

    python去除文件中重復(fù)的行實(shí)例

    今天小編就為大家分享一篇python去除文件中重復(fù)的行實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • pytorch 實(shí)現(xiàn)L2和L1正則化regularization的操作

    pytorch 實(shí)現(xiàn)L2和L1正則化regularization的操作

    這篇文章主要介紹了pytorch 實(shí)現(xiàn)L2和L1正則化regularization的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

华亭县| 玉树县| 阜平县| 高安市| 沽源县| 南康市| 略阳县| 西充县| 揭阳市| 沙雅县| 荔波县| 巴南区| 全州县| 临安市| 理塘县| 芮城县| 安顺市| 夹江县| 嘉祥县| 吉林省| 荆门市| 特克斯县| 泸水县| 齐河县| 金昌市| 汉川市| 拉孜县| 班戈县| 永福县| 宁都县| 大田县| 新营市| 花莲市| 定日县| 南陵县| 上犹县| 长宁区| 白沙| 墨竹工卡县| 扎囊县| 鄂尔多斯市|