top
命令是 Linux 系统中一个非常实用的工具,它可以实时显示系统中各个进程的资源占用情况,包括 CPU 使用率、内存使用量等。下面我将介绍 top
命令的基础概念,以及如何模拟实现一个简单的 top
命令。
top
命令会定期刷新显示的信息,以反映最新的系统状态。我们可以使用 Python 和 psutil
库来模拟实现一个简单的 top
命令。以下是一个示例代码:
import psutil
import time
from tabulate import tabulate
def get_process_info():
processes = []
for proc in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_info']):
try:
proc_info = proc.as_dict(attrs=['pid', 'name', 'cpu_percent', 'memory_info'])
proc_info['memory_usage'] = proc_info['memory_info'].rss / (1024 * 1024) # MB
processes.append(proc_info)
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
return processes
def display_top(processes, sort_by='cpu_percent'):
headers = ["PID", "Name", f"{sort_by.capitalize()} (%)", "Memory Usage (MB)"]
sorted_processes = sorted(processes, key=lambda x: x[sort_by], reverse=True)
print(tabulate(sorted_processes, headers=headers, tablefmt="grid"))
def main():
while True:
processes = get_process_info()
display_top(processes)
time.sleep(1)
if __name__ == "__main__":
main()
通过这种方式,你可以模拟实现一个简单的 top
命令,用于监控系统的实时资源使用情况。
云+社区沙龙online第6期[开源之道]
GAME-TECH
云+社区技术沙龙[第17期]
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL(PostgreSQL版)训练营
腾讯云数据库TDSQL(PostgreSQL版)训练营
云原生正发声
云+社区技术沙龙[第14期]
腾讯云数据库TDSQL训练营
第四期Techo TVP开发者峰会
领取专属 10元无门槛券
手把手带您无忧上云