#!/bin/bash
DELLIST=`lsof +L1 | egrep -v "(^COMMAND|^apache.*/SYSV00000000$)" | cut -d " " -f 1 | sort | uniq`

if [ ! "$DELLIST" = "" ] ; then
	lsof +L1 | egrep -v "^apache.*/SYSV00000000$" | sort
	for D in $DELLIST
	do
		# Manipulate executable name to obtain corresponding init script
		case $D in
			named)
				ISCRIPT="bind9" ;;
			*)
				ISCRIPT=$D ;;
		esac
		# Some daemons need last 'd' removed (e.g. sshd => ssh)
		if [ ! -x /etc/init.d/$ISCRIPT ] ; then
			ISCRIPT=`echo $ISCRIPT | sed "s/d$//g"`
		fi

		if [ -x /etc/init.d/$ISCRIPT ] ; then
			ANSWER=""
			until [ "$ANSWER" = "n" -o "$ANSWER" = "N" -o "$ANSWER" = "y" -o "$ANSWER" = "Y" ]
			do
				echo -n "Do you wish to restart $ISCRIPT (y/n)? "
				read
				ANSWER=$REPLY
			done
			if [ "$ANSWER" = "y" -o "$ANSWER" = "Y" ] ; then
				/etc/init.d/$ISCRIPT restart
			fi
		else
			echo "No initscript for $ISCRIPT found."
		fi
	done
fi
