日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python监控进程状态_python监控进程脚本

發布時間:2025/3/15 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python监控进程状态_python监控进程脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文實例為大家分享了python監控進程腳本的具體代碼,供大家參考,具體內容如下

原理:

監控一個指定進程,每隔5秒鐘獲取其CPU、內存使用量超過60%即kill掉該進程,獲取其句柄數,超過300也kill掉該進程

運行環境是windows 64位系統+python 2.7 64位 ,這里需要使用到psutil 類庫,要另外安裝。腳本里面可以自動安裝,前提是你已經下載好了安裝包psutil-3.3.0.win-amd64-py2.7.exe

下面看代碼:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import time

from datetime import date,datetime,timedelta

import platform

import os

import win32ui,win32api,win32con,win32gui

import subprocess

def install():

print("install psutil...")

sysstr = platform.system()

if(sysstr =="Windows"):

print ("Call Windows tasks")

bit,type=platform.architecture()

print ("os bit: %s " % bit)

#print ("os type: %s " % type)

if(bit == "64bit"):

fileName="psutil-3.3.0.win-amd64-py2.7.exe";

else:

fileName="psutil-3.3.0.win32-py2.7.exe";

print("will install the file [%s]" % fileName)

#啟動程序--4種方法

#subprocess.Popen(fileName); #非阻塞

#subprocess.Popen(fileName).wati(); #阻塞

#os.system(fileName); #阻塞

#win32api.ShellExecute(0,'open',fileName,'',0)

label = 'Setup' #此處假設主窗口名為tt

hld = win32gui.FindWindow(None,label)

count=0

while (hld == 0 and count<20):

print("the setup is no running,will run it...")

count += 1

win32api.ShellExecute(0,0)

print("sleep 1 seconds...")

time.sleep(0.5)

#wnd = win32ui.GetForegroundWindow()

#print wnd.GetWindowText()

hld = win32gui.FindWindow(None,label)

print("hld is %s" % hld)

pwin=win32ui.FindWindow(None,label)

print("pwin is %s" % pwin)

print pwin.GetWindowText()

print("click...")

button2=win32ui.FindWindowEx(pwin,None,'下一步(&N) >') #找到按鈕

button2.SendMessage(win32con.BM_CLICK,-1)

button2=win32ui.FindWindowEx(pwin,'完成') #找到按鈕

button2.SendMessage(win32con.BM_CLICK,-1)

print("install done...")

# 鼠標點擊

#print("click...")

#win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0)

#time.sleep(0.1)

#win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0)

#time.sleep(1)

#win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0)

elif(sysstr == "Linux"):

print ("Call Linux tasks")

else:

print ("Other System tasks")

try:

print("import psutil...")

import psutil

except Exception,e:

print Exception,":",e

install()

import psutil

def get_proc_by_id(pid):

return psutil.Process(pid)

def get_proc_by_name(pname):

""" get process by name

return the first process if there are more than one

"""

for proc in psutil.process_iter():

try:

# return if found one

if proc.name().lower() == pname.lower():

return proc

except psutil.AccessDenied:

pass

except psutil.NoSuchProcess:

pass

return None

def getProcess(pname,day=0,hour=0,min=0,second=0):

# Init time

now = datetime.now()

strnow = now.strftime('%Y-%m-%d %H:%M:%S')

print "now:",strnow

# First next run time

period = timedelta(days=day,hours=hour,minutes=min,seconds=second)

next_time = now + period

strnext_time = next_time.strftime('%Y-%m-%d %H:%M:%S')

print "next run time:",strnext_time

while True:

# Get system current time

iter_now = datetime.now()

iter_now_time = iter_now.strftime('%Y-%m-%d %H:%M:%S')

if str(iter_now_time) == str(strnext_time):

next_time = iter_now + period

strnext_time = next_time.strftime('%Y-%m-%d %H:%M:%S')

print "next run time:",strnext_time

try:

Process=get_proc_by_name(pname)

except Exception,e:

print Exception,e

if Process != None :

print "-------Found the process : %s" % Process.name();

print("pid is (%s)" % Process.pid);

Cpu_usage = Process.cpu_percent(interval=1)

print("cpu percent is (%s)" % Cpu_usage);

if (100-Cpu_usage) < 0.1 :

print "cpu percent larger 60,now will terminate this process !";

Process.terminate();

Process.wait(timeout=3);

continue

RAM_percent = Process.memory_percent()

print("memory percent is (%s)" % RAM_percent);

if (60-RAM_percent) < 0.1 :

print "memory percent larger 60,now will terminate this process !";

Process.terminate();

Process.wait(timeout=3);

continue

all_files = list(Process.open_files());

print("open files size is (%d)" % len(all_files));

if (len(all_files)>300) :

print "open files size larger 300,now will terminate this process !";

Process.terminate();

Process.wait(timeout=3);

continue

Threads_Num=Process.num_threads()

print("threads number is (%s)" % Threads_Num);

if (Threads_Num>200) :

print "threads number larger 200,now will terminate this process !";

Process.terminate();

Process.wait(timeout=3);

continue

else :

print "-------No found the process : %s" % pname;

continue

if __name__ == '__main__':

print("main....")

getProcess("QQ.exe",second=5)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持編程小技巧。

總結

以上是生活随笔為你收集整理的python监控进程状态_python监控进程脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本三级全黄 | 最新国产精品视频 | 12av在线| 毛片3| 日韩视频一区二区三区 | 91中文 | 中文字幕91| 久久久久久91亚洲精品中文字幕 | 黄色污污视频软件 | 人妻无码一区二区三区四区 | 伊人春色影院 | 欧美精品极品 | 成人涩涩软件 | 午夜小福利 | 日韩成人免费电影 | 无码国产69精品久久久久同性 | 毛片视频网址 | 亚洲精品一区在线 | 色老妹 | 婷婷天堂 | 日本亚洲最大的色成网站www | 国产精品色在线网站 | 啪啪五月天 | 在线观看免费黄网站 | 国产成人免费看一级大黄 | 国产在视频线精品视频 | 韩国日本在线观看 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 羞羞网站在线看 | 亚洲乱色 | 欧美性大战久久久久久久 | 日本三级吹潮 | 久久大香焦 | 久久免费国产 | 国产精品视频网址 | 狠狠夜 | 男女瑟瑟网站 | 新91av| 操天天 | 欧美色xxxxx 日本精品一区二区三区四区的功能 | 先锋影音av资源网站 | 亚洲free性xxxx护士白浆 | 欧美成在线观看 | av在线浏览| 一级免费在线 | 欧美日韩成人一区 | 经典杯子蛋糕日剧在线观看免费 | 国产传媒专区 | 午夜精品福利一区二区 | 日韩一区二区三区在线视频 | 短裙公车被强好爽h吃奶视频 | 欧洲中文字幕日韩精品成人 | wwwsss在线观看 | 中文字幕人妻互换av久久 | 久久成人在线 | 在线涩涩 | 91黄色大片 | 亚洲午夜小视频 | 综合久久一区 | 四虎影库| 亚洲精品一区二区在线 | 欧美精品99久久 | 午夜在线观看免费视频 | 久久久久久久久久久久Av | 色丁香婷婷综合久久 | 亚洲人视频在线 | 97人妻一区二区精品免费视频 | 波多野结衣日韩 | 欧美日韩在线视频一区 | 日在线视频 | 日本一区二区三区在线观看视频 | 亚洲女人av| 伊人久在线| 久久av喷吹av高潮av萌白 | 看片在线 | 尤物视频在线 | аⅴ资源天堂资源库在线 | 中文字幕精| 美女免费视频网站 | 五月婷婷六月婷婷 | 国产精品久久久久久久蜜臀 | www.国产黄色 | 韩国美女视频在线观看18 | 91精品国产成人www | 欧美日韩黄色一级片 | 激情爱爱网 | 天天碰天天摸 | 亚洲精品乱码久久久久久蜜桃欧美 | 成人hd| 青青在线视频观看 | 色久在线| 抱着老师的嫩臀猛然挺进视频 | 农村少妇| 夜色一区二区三区 | 黄色网络在线观看 | 国产精品视频一区在线观看 | 91精品国产色综合久久不卡蜜臀 | 老司机激情视频 | 欧美视频91 |