文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python实现linux下的简单进程监

2023-01-31 01:52

关注

最近看writeup看的有点头疼,深深感受到了自己的无知。确实还需要学习很多东西、一点一点的积累!加油!

python确实很强大哦~,要想学好python就得自己多动手堆代码!
无聊写了一个进程监控的脚本,就当做是练习。其实最终实现的功能也很简单。
记录如下:
0x00:
首先这种写法要学会哦,虽然不知道具体有什么用吧,但是这代码写的,看着就很有水平!哈!

def main():
    while 1:
        psutil_process()

if __name__=="__main__":
    main()

name ==”main“的作用是为了对py的运行方式进行检测,如果模块是被导入,name的值为模块的名字,如果是直接执行name的值==”main
网上找了一个解释,贴在这里,希望有懂得人来讲讲具体区别。
0x01:
进程监控、刚开始我的想法是通过两次执行执行ps -e命令,比较不同。于是就上网
找到了subprocess模块。具体的用法还是自行百度,网上资料很多的。
主要是用subprocess.Popen()这个方法通过shell创建一个子进程,不过这个方法不太可行,主要的问题出在两者的比较上。。大家有兴趣可以去做一下,主要是为了练习python
0x02:
继续百度于是找到了psutil这个模块
代码如下:

import subprocess
import sys
import psutil
import time
import datetime
log_file='monitor_log.txt'
def print_process_information(pid):
    p=psutil.Process(pid)
    message='[!][Add]pid:'+str(p.pid)+'  '+'name:'+p.name()+'  '+'username:'+p.username()+'  '+'status:'+p.status()+'  '+'start_time:'+datetime.datetime.fromtimestamp(p.create_time()).strftime("%H:%M:%S")
    print message
    fp=open(log_file,'a')
    try:
        message+='\n'
        fp.writelines(message)
    finally:
        fp.close()

def psutil_process():
    pids_1=psutil.pids()
    time.sleep(2)
    pids_2=psutil.pids()
    for pid in pids_2:
        if pid in pids_1:
            #print 'ok!'
            pass
        else:
            print_process_information(pid)
def main():
    while 1:
        psutil_process()

if __name__=="__main__":
    main()

0x03:
最后可以在改进一下

message='[!][Add]pid:'+str(p.pid)+'  '+'name:'+p.name()+'  '+'username:'+p.username()+'  '+'status:'+p.status()+'  '+'start_time:'+datetime.datetime.fromtimestamp(p.create_time()).strftime("%H:%M:%S")

这里可以用格式化输出。。做个元组什么的
0x04:
通过这个小小的进程监控,我学习了subprocess和psutil,了解了管道的单方向性。Perfect!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯