Python3 实时监控某个程序

作为一名刚入行的开发者,实时监控某个程序听起来可能有些复杂,但不用担心,我会一步步教你如何实现。以下是实现该功能的整体流程和代码示例。

流程

步骤描述
1导入所需库
2获取目标程序的进程ID
3监控进程状态
4输出监控结果

代码实现

首先,我们需要导入Python的psutil库,它可以帮助我们获取进程信息和监控进程状态。

import psutil
  • 1.

接下来,我们需要获取目标程序的进程ID。这里以一个名为target_program的程序为例。

def get_process_id(program_name):
    for proc in psutil.process_iter(['pid', 'name']):
        if program_name.lower() in proc.info['name'].lower():
            return proc.info['pid']
    return None
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

现在,我们需要编写一个函数来监控进程状态。我们将使用psutilcpu_percent方法来获取进程的CPU使用率。

def monitor_process(process_id, interval=1):
    process = psutil.Process(process_id)
    print(f"Monitoring {process.name()} (PID: {process_id})")
    try:
        while True:
            cpu_usage = process.cpu_percent(interval=interval)
            print(f"CPU Usage: {cpu_usage}%")
    except psutil.NoSuchProcess:
        print(f"Process {process.name()} (PID: {process_id}) has terminated.")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

最后,我们将调用这些函数来实现实时监控。

if __name__ == "__main__":
    program_name = "target_program"
    process_id = get_process_id(program_name)
    if process_id:
        monitor_process(process_id)
    else:
        print(f"Process {program_name} not found.")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

类图

"monitors" 1 ProcessMonitor +get_process_id(program_name) : int +monitor_process(process_id, interval) : void Process

状态图

process_found process_not_found Searching Found NotFound Monitoring

结尾

通过以上步骤和代码示例,你应该能够实现一个简单的Python3实时监控程序。当然,这只是一个基础的实现,你可以根据需要扩展功能,例如添加内存使用率监控、网络使用率监控等。希望这对你有所帮助,祝你在编程的道路上越走越远!