Browse Source
Reworked send.sh, so it works properly on my Mac (killall send.sh doesn't work, because the process name is 'bash' not 'send.sh'). So now send.sh writes a .send.pid file, and invoking it as send.sh -STOP (as the bitcoind -walletnotify) signals that PID.0.10
Gavin Andresen
11 years ago
2 changed files with 15 additions and 1 deletions
@ -1,14 +1,28 @@ |
|||||||
#!/bin/bash |
#!/bin/bash |
||||||
TIMEOUT=10 |
TIMEOUT=10 |
||||||
SIGNAL=HUP |
SIGNAL=HUP |
||||||
|
PIDFILE=.send.pid |
||||||
if [ $# -eq 0 ]; then |
if [ $# -eq 0 ]; then |
||||||
echo -e "Usage:\t$0 <cmd>" |
echo -e "Usage:\t$0 <cmd>" |
||||||
echo -e "\tRuns <cmd> and wait ${TIMEOUT} seconds or until SIG${SIGNAL} is received." |
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 "\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 |
exit 0 |
||||||
fi |
fi |
||||||
|
|
||||||
|
if [ $1 == "-STOP" ]; then |
||||||
|
if [ -s ${PIDFILE} ]; then |
||||||
|
kill -s ${SIGNAL} $(<${PIDFILE}) |
||||||
|
fi |
||||||
|
exit 0 |
||||||
|
fi |
||||||
|
|
||||||
trap '[[ ${PID} ]] && kill ${PID}' ${SIGNAL} |
trap '[[ ${PID} ]] && kill ${PID}' ${SIGNAL} |
||||||
|
trap 'rm -f ${PIDFILE}' EXIT |
||||||
|
echo $$ > ${PIDFILE} |
||||||
"$@" |
"$@" |
||||||
sleep ${TIMEOUT} & PID=$! |
sleep ${TIMEOUT} & PID=$! |
||||||
wait ${PID} && exit 1 |
wait ${PID} && exit 1 |
||||||
|
|
||||||
exit 0 |
exit 0 |
||||||
|
Loading…
Reference in new issue