mirror of
https://github.com/maptiler/tileserver-gl.git
synced 2024-09-21 00:49:27 +03:00
36 lines
753 B
Bash
36 lines
753 B
Bash
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
handle() {
|
|
SIGNAL=$(( $? - 128 ))
|
|
echo "Caught signal ${SIGNAL}, stopping gracefully"
|
|
kill -s ${SIGNAL} $(pidof node) 2>/dev/null
|
|
}
|
|
|
|
trap handle INT TERM
|
|
|
|
refresh() {
|
|
SIGNAL=$(( $? - 128 ))
|
|
echo "Caught signal ${SIGNAL}, refreshing"
|
|
kill -s ${SIGNAL} $(pidof node) 2>/dev/null
|
|
}
|
|
|
|
trap refresh HUP
|
|
|
|
if ! which -- "${1}"; then
|
|
# first arg is not an executable
|
|
node /usr/src/app/ -p 80 "$@" &
|
|
# Wait exits immediately on signals which have traps set. Store return value and wait
|
|
# again for all jobs to actually complete before continuing.
|
|
wait $! || RETVAL=$?
|
|
while [ ${RETVAL} = 129 ] ; do
|
|
# Refressh signal HUP received. Continue waiting for signals.
|
|
wait $! || RETVAL=$?
|
|
done
|
|
wait
|
|
exit ${RETVAL}
|
|
fi
|
|
|
|
exec "$@"
|