mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-27 23:27:11 +01:00
47 lines
1.3 KiB
Bash
Executable File
47 lines
1.3 KiB
Bash
Executable File
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)"
|
|
. "$DIR/../prelude.sh"
|
|
|
|
proc_list="(java|lein|mongo|python|_test$|_test\.exe$)"
|
|
if [ "Windows_NT" = "$OS" ]; then
|
|
get_pids() {
|
|
proc_pids=$(tasklist /fo:csv \
|
|
| awk -F'","' '{x=$1; gsub("\"","",x); print $2, x}' \
|
|
| grep -iE $1 \
|
|
| cut -f1 -d ' ')
|
|
}
|
|
get_process_info() {
|
|
proc_name=""
|
|
proc_info=$(wmic process where "ProcessId=\"$1\"" get "Name,ProcessId,ThreadCount" /format:csv 2> /dev/null | grep $1)
|
|
if [ ! -z $proc_info ]; then
|
|
proc_name=$(echo $proc_info | cut -f2 -d ',')
|
|
proc_threads=$(echo $proc_info | cut -f4 -d ',')
|
|
fi
|
|
}
|
|
else
|
|
get_pids() { proc_pids=$(pgrep $1); }
|
|
get_process_info() {
|
|
proc_name=$(ps -p $1 -o comm=)
|
|
# /proc is available on Linux platforms
|
|
if [ -f /proc/$1/status ]; then
|
|
set_sudo
|
|
proc_threads=$($sudo grep Threads /proc/$1/status | sed "s/\s//g" | cut -f2 -d ":")
|
|
else
|
|
proc_threads=$(ps -AM $1 | grep -vc PID)
|
|
fi
|
|
}
|
|
fi
|
|
while [ 1 ]; do
|
|
get_pids $proc_list
|
|
if [ ! -z "$proc_pids" ]; then
|
|
printf "Running process/thread counter\n"
|
|
printf "PROCESS\tPID\tTHREADS\n"
|
|
fi
|
|
for pid in $proc_pids; do
|
|
get_process_info $pid
|
|
if [ ! -z "$proc_name" ]; then
|
|
printf "$proc_name\t$pid\t$proc_threads\n"
|
|
fi
|
|
done
|
|
sleep 60
|
|
done
|