From 398b68fd5b329a42e5e0ca008f449baf0afb1e34 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 8 May 2023 22:17:21 +0200 Subject: [PATCH] Trap handler --- run/server.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/run/server.sh b/run/server.sh index dcfbd29..87eb66b 100644 --- a/run/server.sh +++ b/run/server.sh @@ -1,13 +1,17 @@ #!/usr/bin/env bash set -eu -trap 'pkill -f nc || true' EXIT -trap exit SIGINT SIGTERM +stop() { + trap - SIGINT EXIT + { pkill -f nc || true } 2>/dev/null +} + +trap 'stop' EXIT SIGINT SIGTERM SIGHUP if [[ "$2" == "/"* ]]; then while true ; do - nc -lp "${1:-5000}" -e "$2" >/dev/null 2>&1 & wait $! + nc -lp "${1:-5000}" -e "$2" & wait $! done else @@ -19,7 +23,7 @@ else RESPONSE="HTTP/1.1 200 OK\nContent-Length: ${LENGTH}\nConnection: close\n\n$HTML\n\n" while true; do - echo -en "$RESPONSE" | nc -lp "${1:-5000}" >/dev/null 2>&1 & wait $! + echo -en "$RESPONSE" | nc -lp "${1:-5000}" & wait $! done fi