summaryrefslogtreecommitdiff
path: root/dotfiles/system/.local/bin/ps-mem
blob: b24b00337a0090ec1a5c6cde9ded3aac748dda83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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"