#! /bin/sh status=0 interrupt() { while ! flock -u 1 2>/dev/null do : done exit $status } trap interrupt RETURN SIGHUP SIGINT SIGQUIT SIGTERM while ! flock 1 2>/dev/null do : done eval "$*" status=$?