summaryrefslogtreecommitdiff
path: root/dotfiles/system/.local/bin/ps-mem
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-05-12 04:40:15 -0500
committerCraig Jennings <c@cjennings.net>2025-05-12 04:40:15 -0500
commit9c773a5d1c64bc3c772fef1ae660bffb9f1691f4 (patch)
tree4c49f919c66fed6a17e2db74450e0a85a57288c3 /dotfiles/system/.local/bin/ps-mem
parent376496c32d6a4822f990ed6d46ba1b6adc4a7973 (diff)
copying relevant dotfiles from linux install
Diffstat (limited to 'dotfiles/system/.local/bin/ps-mem')
-rwxr-xr-xdotfiles/system/.local/bin/ps-mem28
1 files changed, 28 insertions, 0 deletions
diff --git a/dotfiles/system/.local/bin/ps-mem b/dotfiles/system/.local/bin/ps-mem
new file mode 100755
index 0000000..b24b003
--- /dev/null
+++ b/dotfiles/system/.local/bin/ps-mem
@@ -0,0 +1,28 @@
+#!/bin/bash
+# Craig Jennings <c@cjennings.net>
+# Outputs a process's memory usage in multiple size units.
+
+# Get a list of all processes
+procs=$(ps aux --sort=-%mem | awk '{print $2, $4, $11}' | fzf)
+
+# Check if a process was selected
+if [ -z "$procs" ]; then
+ echo "No process selected."
+ exit 1
+fi
+
+# Get the PID of the selected process (first field)
+PID=$(echo $procs | awk '{print $1}')
+
+# Get the process name
+PROCNAME=$(ps -p $PID -o comm=)
+
+# Get the memory usage
+KB=$(pmap -x $PID | grep total | awk '{print $4}')
+
+# Convert to MB and GB
+MB=$(echo "scale=2; $KB / 1024" | bc)
+GB=$(echo "scale=2; $MB / 1024" | bc)
+
+# Print the memory usage
+printf "$PROCNAME (pid $PID) mem usage: $KB KB | $MB MB | $GB GB\n\n"