监控进程 python程序汇总

本文介绍了使用Python的subprocess模块监控进程的方法,包括检查进程是否结束,以及在Linux下结合wxPython和Vim实现进程状态监测。文章还分享了在不同操作系统下遇到的问题和解决方案,如使用lsof检查文件占用情况,以及在Windows和Linux平台的差异。
摘要由CSDN通过智能技术生成

可以考虑写个 监控本机增加进程的python程序

 

Python监视进程

关键字: python监视进程


由subprocess创建一个进程,然后进行监视
每一秒钟查看一次,如果正在运行,打印pid和running,如果已停止,,继续执行任务并打印Termined
shell和stdout均设置为False
也许这对做病毒的守护进程很好

#!/usr/bin/env python
import subprocess , sys , time
p=subprocess.Popen(['ping','127.0.0.1','-n','10'], shell=False,stdout=False)
while 1:
    time.sleep(1)
    ret=subprocess.Popen.poll(p)
    if ret is None:
        print p.pid,"running"
    else:
        print "Termined!"
        p=subprocess.Popen(['ping','127.0.0.1','-n','10'], shell=False,stdout=False)

 

用Python监视进程是否结束

平时不打游戏在Linux下的时间比较长,用VirtualBox装了个XP可以上上QQ,用用其他一些只有Windows版的软件,这两天下BoA的演唱会又用到了网盘,而且网盘的客户端软件只支持Windows,这样就只能在VirtualBox里下载,可是下载结束自动关机的功能就失效了。。于是想到能不能VirtualBox自动关闭的同时,也能让Linux也一起关闭。

不知道有什么简便的方法可以实现,只想到了用Python写个小脚本(过去一直用Python来解决一些小问题),于是去网上搜了Python相关的类库,其中os.system函数可以调用Linux命令,初步想了下,准备用一个线程来不断执行ps命令,并检查VirtualBox的进程是否还存在,如果不存在了,就执行halt

不过尝试了一下用os.system调用ps后,输出的结果无法保存到变量中,看了一个帖子,发现os.popen可以解决,os.popen可以像打开文件一样执行一条Linux命令,命令返回的结果可以通过读取文件的方式获得。

通过ps ax|grep VirtualBox|grep xp的组合命令可以得到正在执行xp的虚拟机进程,其中xp是自己设定的虚拟机的标题,一般得到的结果会有2条,1条就是虚拟机进程,另1条是grep命令本身,所以当得到的结果只剩下grep命令本身时,说明虚拟机已经关闭。

由于我用的Linux发行版是Ubuntu,执行关机命令需要sudo并且输入密码,所以要让自动关机能够实现还有一步是,设定用户执行sudo不需要输入密码,这可以通过sudo visudosudoers文件进行修改,在文件最后加上chocobo ALL=(ALL) NOPASSWD: ALL其中chocobo是用户名。

好了,准备工作都做完,就可以执行脚本监视进程啦,具体代码如下:

python
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值