net/mwan3: add clean_up trap function for SIGINT SIGTERM
[feed/packages.git] / net / mwan3 / files / usr / sbin / mwan3track
index c2a69927295114ee74353cb0736b4d255a9d3807..6bfdaa0a71ceb19f2de07b0cd6726a4210a2feea 100755 (executable)
@@ -1,17 +1,21 @@
 #!/bin/sh
 
 LOG="/usr/bin/logger -t $(basename "$0")[$$] -p"
+INTERFACE=""
+
+clean_up() {
+       $LOG notice "Stopping mwan3track for interface \"${INTERFACE}\""
+       rm "/var/run/mwan3track-${INTERFACE}.pid" &> /dev/null
+       exit 0
+}
 
 main() {
 
        [ -z "$12" ] && echo "Error: should not be started manually" && exit 0
 
-       if [ -e /var/run/mwan3track-$1.pid ] ; then
-               kill $(cat /var/run/mwan3track-$1.pid) &> /dev/null
-               rm /var/run/mwan3track-$1.pid &> /dev/null
-       fi
-
+       INTERFACE=$1
        echo "$$" > /var/run/mwan3track-$1.pid
+       trap clean_up SIGINT SIGTERM
 
        local score=$(($7+$8))
        local track_ips=$(echo $* | cut -d ' ' -f 12-99)