#!/bin/sh -e

timeout="$1" && shift
signal="$1" && shift
exe="$1" && shift

[ -x "$exe" ]
"$exe" "$@" &
exe_pid=$!

(sleep "$timeout" && kill -0 "$exe_pid" 2>/dev/null && kill -$signal "$exe_pid") &
timer_pid=$!

wait "$exe_pid" 2>/dev/null ||:

if kill -0 "$timer_pid" 2>/dev/null; then
	kill "$timer_pid"
fi
