mirror of
https://github.com/troglobit/finit.git
synced 2026-10-01 05:22:48 +07:00
Add silly process monitor script to distribution.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
SUBDIRS = alpine debian void
|
||||
docsdir := @docdir@/contrib
|
||||
docs_DATA = README.md finit.conf
|
||||
docs_DATA = README.md finit.conf procmon.sh
|
||||
EXTRA_DIST = $(docs_DATA)
|
||||
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
USAGE="Usage: $0 processName"
|
||||
LOG_FILE="/tmp/memusage.csv"
|
||||
ELAPSED_TIME=0
|
||||
PERIOD=1 # seconds
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo $USAGE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "ElapsedTime,VmSize,VmRSS" > $LOG_FILE
|
||||
|
||||
# Monitor memory usage forever until script is killed
|
||||
while :
|
||||
do
|
||||
SUM_VM_SIZE=0
|
||||
SUM_RSS_SIZE=0
|
||||
# In case the monitored process has not yet started
|
||||
# keep searching until its PID is found
|
||||
PROCESS_PIDS=""
|
||||
while :
|
||||
do
|
||||
PROCESS_PIDS=`/bin/pidof $1`
|
||||
if [ "$PROCESS_PIDS.X" != ".X" ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
for PID in ${PROCESS_PIDS} ; do
|
||||
VM_SIZE=`awk '/VmSize/ {print $2}' < /proc/$PID/status`
|
||||
if [ "$VM_SIZE.X" = ".X" ]; then
|
||||
continue
|
||||
fi
|
||||
#echo exprVM_ $SUM_VM_SIZE + $VM_SIZE
|
||||
SUM_VM_SIZE=`expr $SUM_VM_SIZE + $VM_SIZE`
|
||||
|
||||
VM_RSS=`awk '/VmRSS/ {print $2}' < /proc/$PID/status`
|
||||
if [ "$VM_RSS.X" = ".X" ]; then
|
||||
continue
|
||||
fi
|
||||
SUM_RSS_SIZE=`expr $SUM_RSS_SIZE + $VM_RSS`
|
||||
done
|
||||
echo "$ELAPSED_TIME sec, $SUM_VM_SIZE KB, $SUM_RSS_SIZE KB"
|
||||
echo "$ELAPSED_TIME,$SUM_VM_SIZE,$SUM_RSS_SIZE" >> $LOG_FILE
|
||||
sleep $PERIOD
|
||||
VM_SIZE=""
|
||||
VM_RSS=""
|
||||
# Needs to get actual elapsed time instead of doing this
|
||||
ELAPSED_TIME=`expr $ELAPSED_TIME + $PERIOD`
|
||||
done
|
||||
Reference in New Issue
Block a user