Listing 3: Michael Faurot's killidle

:
#	killidle
#
#	Kill any user login idle for too long

PATH="/usr/bin:/sbin:/usr/sbin:/usr/local/bin:"
export PATH

LOGFILE=/var/adm/killidle.log

TIME=`date +"%a %b %e %T"`

IDLEOUT=${1:-50}

if [ $IDLEOUT -lt 1 ]
then
	IDLEOUT=50
fi

who -u | nawk -v "IDLEOUT=$IDLEOUT" -v "TIME=$TIME" '{
	name = $1;
	terminal = $2;
	idle = $6;
	pid = $7;

	if (idle != ".") {
		split (idle, idletime, ":");
		if (idletime[2] >= IDLEOUT) {
			print "Timeout Warning:", \
				name, "on", terminal, \
				"idle for", idle, \
				"minutes at", TIME
			system ("/bin/kill -1 " pid);
			system ("sleep 2");
			system ("/bin/kill -15 " pid);
			system ("sleep 2");
			system ("/bin/kill -9 " pid);
		}
	}

}' >> $LOGFILE 2> /dev/null

