#!/bin/sh PREFIX=$(expr $0 : "\(/.*\)/bin/$(basename $0)\$") || exit 1 if [ -r $PREFIX/etc/utcount.conf ]; then . $PREFIX/etc/utcount.conf else exit 1 fi TMPDIR=$user_tmpdir export TMPDIR tmpfile=`mktemp -q -u -t count` || exit 1 cleanup () { rm -f $tmpfile.? } trap : 1 trap : 2 trap : 15 set -T trap "cleanup; exit" 1 2 15 bindir=$PREFIX/bin count_eval="" for progname in $user_list do if [ $count_eval ] ; then count_eval="$count_eval ; $bindir/count_$progname" else count_eval="$bindir/count_$progname" fi done count_num=0 touch $tmpfile.$count_num while [ ! ] do if ! ps $PPID >/dev/null 2>&1 then echo "Parent process died. Cleanup and exit." >&2 break fi count_old=$count_num test $count_num -eq 1 count_num=$? eval $count_eval | tee $tmpfile.$count_num \ | diff -b -u $tmpfile.$count_old - \ | grep "^[+-] [a-z]" | sort -r sleep $user_sleeptime done cleanup