#!/bin/bash # Kill tasks holding on to deleted userlogs. These are most likely abandoned jobs. function get_bad_pids { for i in `ps -ef | grep java | awk '{print $2;}'`; do cnt=`/usr/sbin/lsof -p $i | grep deleted | grep /var/log/hadoop-0.20/userlogs/attempt | wc -l`; if [ $cnt -gt 0 ]; then PIDS=$i:$PIDS; fi done } PIDS="" get_bad_pids IFS=':' for pid in $PIDS; do kill -9 $pid; done