#!/bin/sh -efu

if [ -z "${ALIGN_TMPDIR:-}" ]; then
	echo "ALIGN_TMPDIR is not set" >&2
	exit 2
fi

(
flock 4
ps ww -C twofing -o uid= -o pid= -o args= | \
	sed -n -e "s/^[[:space:]]*$(id -u)[[:space:]]\+\([0-9]\+\)[[:space:]]\+\(.*\)$/\1 \2/p" | \
	while read pid cmd; do
		if kill $pid; then
			for i in `seq 0 99`; do
				if kill -0 $pid 2>/dev/null; then
					sleep 0.1
				else
					break
				fi
			done
			if kill -0 $pid 2>/dev/null; then
				kill -9 $pid
				for i in `seq 0 99`; do
					if kill -0 $pid; then
						sleep 0.1
					else
						break
					fi
				done
			fi
			if ! kill -0 $pid 2>/dev/null; then
				echo $cmd >&4
			else
				echo "Error stopping twofing $pid" >&2
				exit 1
			fi
		fi
	done
) 4>>"${ALIGN_TMPDIR%/}/twofing.stopped"
