app uses signals helper

This commit is contained in:
2024-05-15 12:16:18 +02:00
parent 63766e510f
commit aca39dba56
2 changed files with 56 additions and 4 deletions
+31 -4
View File
@@ -1,8 +1,35 @@
#!/bin/bash
# Signal helper
source /app/signals.sh
echo Using DISPLAY $DISPLAY
export XDG_RUNTIME_DIR=/tmp/runtime-doge
#export QT_QPA_PLATFORM=offscreen
#export QT_X11_NO_MITSHM=1
#export QT_DEBUG_PLUGINS=1
exec dogecoin-qt
set -x
PID=$$
TERM_handler() {
SIGNAME="$1"
echo "Killing ${PID}"
echo "Signal ${SIGNAME}"
if [ ${PID} -ne 0 ]; then
ps -ef --forest
CHILDS=$(pgrep -P "${PID}")
kill -SIGTERM -"${PID}"
for i in $CHILDS; do
wait $i
done
fi
ps -ef --forest
ret=$(signal_return_val ${SIGNAME})
exit $ret
}
signals_trap_with_arg TERM_handler SIGTERM SIGINT
# Application
dogecoin-qt&
# wait forever
signals_wait_forever
+25
View File
@@ -0,0 +1,25 @@
signals_trap_with_arg() {
func="$1" ; shift
for sig ; do
echo "$func $sig"
trap "$func $sig" "$sig"
done
}
signals_wait_forever() {
while true
do
tail -f /dev/null & wait ${!}
done
}
signal_name_to_number() {
SIGNAME="$1"
trap -l | sed -nr "s/.*\b([0-9]+)\) $SIGNAME.*/\1/p"
}
signal_return_val() {
SIGNAME="$1"
SIGNUM=$(signal_name_to_number ${SIGNAME})
echo "128 + $SIGNUM" | bc
}