net/mwan3: send SIGKILL to mwan3track
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 <fe@dev.tdt.de>
This commit is contained in:
parent
f9a787e8df
commit
7cf9d9ec20
3 changed files with 14 additions and 6 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue