mirror of
https://github.com/dashpay/dash.git
synced 2024-12-27 21:12:48 +01:00
005b5af6e2
There's a brief race here, the process might've already exited and cleaned up after itself. If that's the case, reading from the pidfile will harmlessly fail. Keep those quiet.
32 lines
829 B
Bash
Executable File
32 lines
829 B
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) 2014 The Bitcoin Core developers
|
|
# Distributed under the MIT/X11 software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
TIMEOUT=10
|
|
SIGNAL=HUP
|
|
PIDFILE=.send.pid
|
|
if [ $# -eq 0 ]; then
|
|
echo -e "Usage:\t$0 <cmd>"
|
|
echo -e "\tRuns <cmd> and wait ${TIMEOUT} seconds or until SIG${SIGNAL} is received."
|
|
echo -e "\tReturns: 0 if SIG${SIGNAL} is received, 1 otherwise."
|
|
echo -e "Or:\t$0 -STOP"
|
|
echo -e "\tsends SIG${SIGNAL} to running send.sh"
|
|
exit 0
|
|
fi
|
|
|
|
if [ $1 = "-STOP" ]; then
|
|
if [ -s ${PIDFILE} ]; then
|
|
kill -s ${SIGNAL} $(<$PIDFILE 2>/dev/null) 2>/dev/null
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
trap '[[ ${PID} ]] && kill ${PID}' ${SIGNAL}
|
|
trap 'rm -f ${PIDFILE}' EXIT
|
|
echo $$ > ${PIDFILE}
|
|
"$@"
|
|
sleep ${TIMEOUT} & PID=$!
|
|
wait ${PID} && exit 1
|
|
|
|
exit 0
|