diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh index c3af63583..56b9ce633 100644 --- a/net/mwan3/files/lib/mwan3/mwan3.sh +++ b/net/mwan3/files/lib/mwan3/mwan3.sh @@ -393,7 +393,6 @@ mwan3_track() 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 if [ -n "$track_ips" ]; then diff --git a/net/mwan3/files/usr/sbin/mwan3 b/net/mwan3/files/usr/sbin/mwan3 index 405cd43f3..63617316c 100755 --- a/net/mwan3/files/usr/sbin/mwan3 +++ b/net/mwan3/files/usr/sbin/mwan3 @@ -44,7 +44,6 @@ ifdown() if [ -e /var/run/mwan3track-$1.pid ] ; then kill $(cat /var/run/mwan3track-$1.pid) - rm /var/run/mwan3track-$1.pid fi } @@ -129,7 +128,6 @@ stop() local ipset route rule table IP IPT killall mwan3track &> /dev/null - rm /var/run/mwan3track-* &> /dev/null for IP in "$IP4" "$IP6"; do diff --git a/net/mwan3/files/usr/sbin/mwan3track b/net/mwan3/files/usr/sbin/mwan3track index c2a699272..6bfdaa0a7 100755 --- a/net/mwan3/files/usr/sbin/mwan3track +++ b/net/mwan3/files/usr/sbin/mwan3track @@ -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)