基于python监控程序是否关闭_python

来源:脚本之家  责任编辑:小易  

不可能吧,你可以写一个类似于django中间件的东西做性能分析,然后将结果写入日志这样做容易一些www.zgxue.com防采集请勿采集本网。

这篇文章主要介绍了基于python监控程序是否关闭,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

如果你是在程序中让其自动退出,则可以使用: 1exit()执行到此命令时,程序终止。如果是程序陷入死循环,想强制结束,则按Ctrl+C。

监控一个服务系exe在他关闭后打印,原想可以使用win32process.EnumProcesses()来获取所有程序pid,再根据pid获取的进程名进行对比,来判断程序是否关闭,但遇到个问题,我无法根据pid获取到进程名,除非使用psutil包,可这样又让自己的程序过于臃肿,我又想到去查找c++的例子希望可以得到一些帮助,然而c++的api函数在python中并不存在,我之前遇到这种问题基本都使用wmi去解决的。

爬虫可以抓取网络上的数据啊。爬虫可以用很多种编程语言实现,python只是一种。所以你想知道的是网络爬虫可以干什么。他比如证券交易数据,天气数据,网站用户数据,图片。拿到这些数据之后你就

import wmi c = wmi.WMI() for process in c.Win32_Process(): print process.ProcessId, process.Name

能快速实现算法, 能当脚本工具,计算器和科学计算器,解决日常的计算问题。python语言有很多近年才流行的高级概念方法模式,比如函数式、迭送器、集合。适合初学者直接了解这些概念。很实用。

但wmi的速度可是出奇的慢,实在不适合,

你好,我觉得可以考虑通过获取当前最上层活动窗口的名字来实现。使用模块win32gui win32gui.GetForegroundWindow()可以获取最上层活动窗口的句柄 判断获取的句柄是不是你需要监控的app就好了

最后我在外面找到个例子,可以很好的解决该问题

Twisted异步网络库。应该可以满足你的需求,但是你得先熟悉他。

from win32com.client import GetObject _wmi = GetObject('winmgmts:') # collect all the running processes processes = _wmi.ExecQuery('Select * from win32_process') for p in processes: print((p.ProcessId, p.ExecutablePath, p.CommandLine, p.Name))

由此全部代码为

def wmi_sql_all_name(pname):#全部程序列表 from win32com.client import GetObject _wmi = GetObject('winmgmts:') processes = _wmi.ExecQuery('Select * from win32_process') for p in processes: if p.name==pname: return p.ProcessIddef process_restat(pname): import win32security, win32event#-----------------------------------------获取令牌 hToken = win32security.OpenProcessToken(win32api.GetCurrentProcess(), win32con.TOKEN_ADJUST_PRIVILEGES | win32con.TOKEN_QUERY) # 打开自己的程序令牌 luid = win32security.LookupPrivilegeValue(None, 'SeDebugPrivilege') # 查看自己的权限,并写入权限关键字 PyTOKEN = ((luid, win32con.SE_PRIVILEGE_ENABLED),) # 将这些做成序列用做参数 pyt1 = win32security.AdjustTokenPrivileges(hToken, 0, PyTOKEN) # 权限写入#---------------------------------------- processid=wmi_sql_all_name(pname) if processid!= None: hprocess = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, processid) win32event.WaitForSingleObject(hprocess, -1) win32api.CloseHandle(hprocess) print U'已关闭' else: print u'未启动'

首先需要获取令牌,否则获取很多服务或者系统进程的信息都会报权限不足

使用OpenProcess得到程序句柄,

使用WaitForSingleObject得到程序的已通知状态也就是运行状态,第二参数为等待时间 -1 为永久等待

注意该函数会死锁线程,但不会占用cpu,很适合丢在子线程里,比无限循环跑程序列表要有效率得多

-------------------

突然想到有sql语句了 我为啥还要循环呢?

def wmi_sql_all_name(pname): from win32com.client import GetObject _wmi = GetObject('winmgmts:') processes = _wmi.ExecQuery("Select * from win32_process where name= '%s'"%(pname)) try: return processes[0].ProcessId except: print u"没有发现程序" return None

将wmi_sql_all_name方法改为以以上

用没有人访问网页来作为判断服务器是否挂的标准,这个不太靠谱吧。建议是定时访问你的网页,当不能收到服务器的响应时(比如502,或者响应超时等等),判定为服务器挂掉,发送邮件给你内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • python3远程监控程序的实现方法
  • python远程视频监控程序的实例代码
  • 用python的flask框架结合mysql写一个内存监控程序
  • python实现监控程序执行时间并将其写入日志的方法
  • python写的服务监控程序实例
  • python监控服务器实用工具psutil使用解析
  • python psutil监控进程实例
  • python实现监控阿里云账户余额功能
  • 使用 supervisor 监控 python3 进程方式
  • python3.8 微信发送服务器监控报警消息代码实现
  • 基于python3监控服务器状态进行邮件报警
  • python中static相关知识小结
  • python 的类、继承和多态详解
  • tensorflow 获取变量&打印权值的实例讲解
  • python数据类型之string字符串实例详解
  • python单元测试实例详解
  • 一百多行python代码实现抢票助手
  • python3实现zabbix告警推送钉钉的示例
  • python使用gensim计算文档相似性
  • pytorch中图像的数据格式实例
  • python的tqdm模块的使用
  • 如何用python写一个程序对windows服务器进行监控,如果出现异常则发送
  • 怎样对持续运行的python程序进行性能分析监控
  • 学python可以做什么
  • 0基础学习Python大概需要多长时间
  • python里怎么终止程序的执行
  • python网络爬虫可以干啥
  • python能做什么
  • 如何监控app是否在最上层 用python实现
  • 请问大神们,python socketserver可以实现c/s系统资源及应用程序监控功能嘛,如果
  • 零基础学python能学会吗
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全vbsdos/bathtahtcpythonperl游戏相关vba远程脚本coldfusionruby专题autoitseraphzonepowershelllinux shellluagolangerlang其它首页pythonpython3远程监控程序的实现方法python远程视频监控程序的实例代码用python的flask框架结合mysql写一个内存监控程序python实现监控程序执行时间并将其写入日志的方法python写的服务监控程序实例python监控服务器实用工具psutil使用解析python psutil监控进程实例python实现监控阿里云账户余额功能使用 supervisor 监控 python3 进程方式python3.8 微信发送服务器监控报警消息代码实现基于python3监控服务器状态进行邮件报警python中static相关知识小结python 的类、继承和多态详解tensorflow 获取变量&打印权值的实例讲解python数据类型之string字符串实例详解python单元测试实例详解一百多行python代码实现抢票助手python3实现zabbix告警推送钉钉的示例python使用gensim计算文档相似性pytorch中图像的数据格式实例python的tqdm模块的使用python入门教程 超详细1小时学会python 列表(list)操作方法详解python 元组(tuple)操作详解python 字典(dictionary)操作详解pycharm 使用心得(一)安装和首python strip()函数 介绍python 中文乱码问题深入分析python科学计算环境推荐——anacpython逐行读取文件内容的三种方python中使用xlrd、xlwt操作exce跟老齐学python之for循环语句python的simplehttpserver模块用处及使用pymysql模块的使用(增删改查)详解更换django默认的模板引擎为jinja2的实现python整数与numpy数据溢出问题解决python3实现配置文件差异对比脚本python matlibplot绘制3d图形python 用正则表达式筛选文本信息的实例python三种遍历文件目录的方法实例代码简单掌握python中glob模块查找文件路径的
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved