"""
Simple module for getting amount of memory used
by a specified user's processes on a UNIX system.
It uses UNIX ps utility to get the memory usage for
a specified username and pipe it to awk for summing up
per application memory usage and return the total.
Python's Popen() from subprocess module is used
for spawning ps and awk.
"""
import subprocess
class MemoryMonitor(object):
def __init__(self, username):
"""Create new MemoryMonitor instance."""
self.username = username
def usage(self):
"""Return int containing memory used by user's processes."""
self.process = subprocess.Popen("ps -u %s -o rss | awk '{sum+=$1} END {print sum}'" % self.username,
shell=True,
stdout=subprocess.PIPE,
)
self.stdout_list = self.process.communicate()[0].split('\n')
return int(self.stdout_list[0])
将上面的代码保存为:memorymonitor.py
调用方法如下:
from memorymonitor import MemoryMonitor
memory_mon = MemoryMonitor('username')
used_memory = memory_mon.usage()
希望本文所述对大家的Python程序设计有所帮助。
声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
相关文章
相关视频