Monitoring active system processes, CPU consumption, and RAM allocations is a foundational task for any IT helpdesk admin. While the native Windows Task Manager is highly capable, checking performance across remote workstations or automation servers requires an automated programmatic approach.
We can build our own lightweight, real-time Task Manager engine using Python. By utilizing the popular third-party psutil library, our automation script will audit system metrics, filter out background noise, and display running processes sorted by intensive resource consumption.
Here is the complete HTML framework and Python source code to deploy your custom process monitoring tool.
📦 Step 1: Install the Dependency Component
Unlike native core scripts, reading real-time OS hardware calls requires the highly optimized psutil library. Install it instantly via your console window:
pip install psutil
🐍 The Python Task Manager Monitoring Script
This script scans active system processes, snapshots global CPU and RAM usage, and dynamically prints out the top 10 heaviest resource consumers. Save this framework file as task_manager.py:
import os
import time
import psutil
def clear_screen():
"""Clears the console window for a smooth, real-time refresh animation."""
os.system('cls' if os.name == 'nt' else 'clear')
def get_system_summary():
"""Fetches high-level hardware utilization metrics."""
cpu_total = psutil.cpu_percent(interval=None)
memory_info = psutil.virtual_memory()
return cpu_total, memory_info.percent
def get_top_processes(limit=10):
"""Audits all running processes and sorts them by memory consumption."""
processes_list = []
# Iterate through all running system tasks
for proc in psutil.process_iter(['pid', 'name', 'username', 'cpu_percent', 'memory_percent']):
try:
# Fetch process data dictionary safely
info = proc.info
# Fallback for missing user strings
if not info['username']:
info['username'] = "SYSTEM"
processes_list.append(info)
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
# Skip tasks that terminate or deny access during processing
continue
# Sort processes by highest RAM utilization footprint
sorted_proc = sorted(processes_list, key=lambda x: x['memory_percent'], reverse=True)
return sorted_proc[:limit]
def main():
try:
# Pre-initialize CPU monitoring loop variables
psutil.cpu_percent(interval=None)
while True:
clear_screen()
cpu, ram = get_system_summary()
print("=" * 65)
print(" AYOULI IT TECH: REAL-TIME PERFORMANCE MONITOR ")
print("=" * 65)
print(f" GLOBAL CORE CPU USAGE: {cpu}% | GLOBAL HARDWARE RAM USAGE: {ram}%")
print("=" * 65)
# Print column layout formatting tables
print(f"{'PID':<8}{'PROCESS NAME':<25}{'USER':<15}{'CPU %':<8}{'RAM %':<8}")
print("-" * 65)
top_tasks = get_top_processes()
for task in top_tasks:
print(f"{task['pid']:<8}"
f"{task['name'][:22]:<25}"
f"{task['username'].split('\\')[-1][:12]:<15}"
f"{task['cpu_percent']:<8.1f}"
f"{task['memory_percent']:<8.1f}")
print("\n" + "=" * 65)
print("[INFO] Press CTRL + C inside your terminal console to stop tracking.")
# Pause execution for 2 seconds before repeating performance audit loop
time.sleep(2)
except KeyboardInterrupt:
print("\n[*] Monitoring engine terminated safely.")
if __name__ == "__main__":
main()
⚙️ Execution and Helpdesk Tips
1. Run the Monitor
Open your standard command prompt, change directory to your file layout storage path, and launch the tool:
python task_manager.py
2. Dynamic Sorting Adaptations
If you prefer to sort processes by **CPU usage** instead of RAM footprints, simply adjust line 29 of the script from key=lambda x: x['memory_percent'] to key=lambda x: x['cpu_percent'].
No comments:
Post a Comment