net/mwan3: send SIGKILL to mwan3track
authorFlorian Eckert <redacted>
Wed, 31 Jan 2018 10:58:38 +0000 (11:58 +0100)
committerFlorian Eckert <redacted>
Mon, 5 Feb 2018 09:29:25 +0000 (10:29 +0100)
In some situation it is not enough to send a SIGTERM to mwan3track to
ask service to stop accurate. If this does not work send him a SIGKILL
to prevent mwan3track running more then once per interface.

Signed-off-by: Florian Eckert <redacted>
net/mwan3/files/lib/mwan3/mwan3.sh
net/mwan3/files/usr/sbin/mwan3
net/mwan3/files/usr/sbin/mwan3track

index 05ee9eedfee46dddddaabbcaa0dcbb19aff8f98e..3d64ec44bf5a822c2ff52a103d36071e78a30b66 100644 (file)
@@ -446,7 +446,7 @@ mwan3_delete_iface_ipset_entries()
 
 mwan3_track()
 {
-       local track_ip track_ips
+       local track_ip track_ips pid
 
        mwan3_list_track_ips()
        {
@@ -454,7 +454,11 @@ mwan3_track()
        }
        config_list_foreach $1 track_ip mwan3_list_track_ips
 
-       kill $(pgrep -f "mwan3track $1 $2") &> /dev/null
+       for pid in $(pgrep -f "mwan3track $1 $2"); do
+               kill -TERM "$pid" > /dev/null 2>&1
+               sleep 1
+               kill -KILL "$pid" > /dev/null 2>&1
+       done
        if [ -n "$track_ips" ]; then
                [ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track "$1" "$2" "$3" "$4" $track_ips &
        fi
index 3e1b644566ad76ecc3121a9f83227b8b99494bb6..5c4259c7da70cfa80fc57a0e8851f46e80c19833 100755 (executable)
@@ -132,9 +132,13 @@ start()
 
 stop()
 {
-       local ipset route rule table IP IPT
+       local ipset route rule table IP IPT pid
 
-       killall mwan3track &> /dev/null
+       for pid in $(pgrep -f "mwan3track"); do
+               kill -TERM "$pid" > /dev/null 2>&1
+               sleep 1
+               kill -KILL "$pid" > /dev/null 2>&1
+       done
 
        config_load mwan3
        config_foreach mwan3_track_clean interface
index 588eb9bf4aae1ef7d3c442c1fd191fe3d485880e..2e6f0ffddfc12680c2043d33b8e3b2496ba56010 100755 (executable)
@@ -62,8 +62,8 @@ main() {
        STATUS=$3
        SRC_IP=$4
        mkdir -p /var/run/mwan3track/$1
-       trap clean_up SIGINT SIGTERM
-       trap if_down SIGUSR1
+       trap clean_up TERM
+       trap if_down USR1
 
        config_load mwan3
        config_get track_method $1 track_method ping
git clone https://git.99rst.org/PROJECT