pmem.py (v0.1)
This commit is contained in:
parent
585d6cafd3
commit
a16643c6de
98
pmem.py
Executable file
98
pmem.py
Executable file
|
@ -0,0 +1,98 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
# pmem - Show system memory |
|
||||||
|
# Created by q3aql (q3aql@duck.com) |
|
||||||
|
# Licensed by GPL v2.0 |
|
||||||
|
# Last update: 29-10-2022 |
|
||||||
|
# Compatible with Python 3.x |
|
||||||
|
# -----------------------------------------------------------
|
||||||
|
version="0.1"
|
||||||
|
|
||||||
|
# Import python-modules
|
||||||
|
import psutil
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Check if your system use Python 3.x
|
||||||
|
if sys.version_info<(3,0):
|
||||||
|
print ("")
|
||||||
|
print (" You need python 3.x to run this program.")
|
||||||
|
print ("")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
# Check system
|
||||||
|
if os.name == "posix":
|
||||||
|
os.chdir(os.environ["HOME"])
|
||||||
|
elif os.name == "nt":
|
||||||
|
print("")
|
||||||
|
print(" Error: Only Linux and *BSD systems are supported")
|
||||||
|
print("")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
print('')
|
||||||
|
print(' List of processes (Mem + Name)')
|
||||||
|
print(' ==============================')
|
||||||
|
print('')
|
||||||
|
|
||||||
|
numprocess=0
|
||||||
|
for process in psutil.process_iter():
|
||||||
|
numprocess = numprocess + 1
|
||||||
|
Name = process.name() # Name of the process
|
||||||
|
ID = process.pid # ID of the process
|
||||||
|
readmemprocess = psutil.Process(ID)
|
||||||
|
sysmemprocess = readmemprocess.memory_info()[0]
|
||||||
|
ID = str(ID)
|
||||||
|
if sysmemprocess > 1024:
|
||||||
|
sysmemprocess = sysmemprocess / 1024
|
||||||
|
sysmemprocess = round(sysmemprocess, 2)
|
||||||
|
showmemprocess = str(sysmemprocess)
|
||||||
|
showmemprocess = showmemprocess + ' KiB'
|
||||||
|
if sysmemprocess > 1024:
|
||||||
|
sysmemprocess = sysmemprocess / 1024
|
||||||
|
sysmemprocess = round(sysmemprocess, 2)
|
||||||
|
showmemprocess = str(sysmemprocess)
|
||||||
|
showmemprocess = showmemprocess + ' MiB'
|
||||||
|
if sysmemprocess > 1024:
|
||||||
|
sysmemprocess = sysmemprocess / 1024
|
||||||
|
sysmemprocess = round(sysmemprocess, 2)
|
||||||
|
showmemprocess = str(sysmemprocess)
|
||||||
|
showmemprocess = showmemprocess + ' GiB'
|
||||||
|
print (' ' + showmemprocess + ' ' + Name + ' (PID: ' + ID + ')')
|
||||||
|
|
||||||
|
# Read file /proc/meminfo and create variables
|
||||||
|
memfile = open('/proc/meminfo', 'r')
|
||||||
|
memread = memfile.read()
|
||||||
|
memsplit = memread.split()
|
||||||
|
|
||||||
|
# Memory variables
|
||||||
|
memtotal = memsplit[1]
|
||||||
|
memavailable = memsplit[7]
|
||||||
|
|
||||||
|
# Convert and calcule memory
|
||||||
|
memtotal = int(memtotal)
|
||||||
|
memavailable = int(memavailable)
|
||||||
|
memactive = memtotal - memavailable
|
||||||
|
if memsplit[2] == "kB":
|
||||||
|
memtotal = memtotal / 1024 / 1024
|
||||||
|
memavailable = memavailable / 1024 / 1024
|
||||||
|
memactive = memactive / 1024 / 1024
|
||||||
|
elif memsplit[2] == "B":
|
||||||
|
memtotal = memtotal / 1024 / 1024 / 1024
|
||||||
|
memavailable = memavailable / 1024 / 1024 / 1024
|
||||||
|
memactive = memactive / 1024 / 1024 / 1024
|
||||||
|
|
||||||
|
# Show memory output
|
||||||
|
memactive = round(memactive, 2)
|
||||||
|
memactive = str(memactive)
|
||||||
|
memavailable = round(memavailable, 2)
|
||||||
|
memavailable = str(memavailable)
|
||||||
|
memtotal = round(memtotal, 2)
|
||||||
|
memtotal = str(memtotal)
|
||||||
|
print('')
|
||||||
|
print(' ============================================')
|
||||||
|
print(' ' + memactive + ' GiB / ' + memtotal + ' GiB = ' + memavailable + " GiB Available")
|
||||||
|
print('')
|
||||||
|
print(' ==========================')
|
||||||
|
print(" Total running process", numprocess)
|
||||||
|
print('')
|
Loading…
Reference in New Issue
Block a user