diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh index f0ebcc42e..561aaede6 100644 --- a/net/mwan3/files/lib/mwan3/mwan3.sh +++ b/net/mwan3/files/lib/mwan3/mwan3.sh @@ -390,10 +390,7 @@ mwan3_track() } config_list_foreach $1 track_ip mwan3_list_track_ips - if [ -e /var/run/mwan3track-$1.pid ] ; then - kill $(cat /var/run/mwan3track-$1.pid) &> /dev/null - fi - + kill $(pgrep -f "mwan3track $1") &> /dev/null if [ -n "$track_ips" ]; then [ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $1 $2 $track_ips & fi @@ -401,18 +398,13 @@ mwan3_track() mwan3_track_signal() { - local pid status + local pid - if [ -f "/var/run/mwan3track-${1}.pid" ]; then - pid="$(cat "/var/run/mwan3track-${1}.pid")" - status="$(pgrep -f mwan3track | grep "${pid}")" - if [ "${status}" != "" ]; then - kill -USR1 "${pid}" - else - $LOG warn "Unable to send signal USR1 to mwan3track on interface $1 with pid ${pid}" - fi + pid="$(pgrep -f "mwan3track $1")" + if [ "${pid}" != "" ]; then + kill -USR1 "${pid}" else - $LOG warn "Unable to find \"/var/run/mwan3track-${1}.pid\" file for mwan3track on interface $1" + $LOG warn "Unable to send signal USR1 to mwan3track on interface $1 with pid ${pid}" fi } diff --git a/net/mwan3/files/usr/libexec/rpcd/mwan3 b/net/mwan3/files/usr/libexec/rpcd/mwan3 index 028dafe1d..2b8046068 100755 --- a/net/mwan3/files/usr/libexec/rpcd/mwan3 +++ b/net/mwan3/files/usr/libexec/rpcd/mwan3 @@ -34,16 +34,12 @@ get_mwan3_status() { local iface="${1}" local iface_select="${2}" local running="0" - local pid="" - local status="" + local pid if [ "${iface}" = "${iface_select}" ] || [ "${iface_select}" = "" ]; then - if [ -f "${MWAN3_PID_FILE}-${iface}.pid" ]; then - pid="$(cat "${MWAN3_PID_FILE}-${iface}.pid")" - status="$(pgrep -f mwan3track | grep "${pid}")" - if [ "${status}" != "" ]; then - running="1" - fi + pid="$(pgrep -f "mwan3track $iface_selected")" + if [ "${pid}" != "" ]; then + running="1" fi json_add_object "${iface}" diff --git a/net/mwan3/files/usr/sbin/mwan3 b/net/mwan3/files/usr/sbin/mwan3 index 63617316c..10dc86f8f 100755 --- a/net/mwan3/files/usr/sbin/mwan3 +++ b/net/mwan3/files/usr/sbin/mwan3 @@ -42,9 +42,7 @@ ifdown() ACTION=ifdown INTERFACE=$1 /sbin/hotplug-call iface - if [ -e /var/run/mwan3track-$1.pid ] ; then - kill $(cat /var/run/mwan3track-$1.pid) - fi + kill $(pgrep -f "mwan3track $1") &> /dev/null } ifup() diff --git a/net/mwan3/files/usr/sbin/mwan3track b/net/mwan3/files/usr/sbin/mwan3track index 0d7b5ab5d..58a31f0ca 100755 --- a/net/mwan3/files/usr/sbin/mwan3track +++ b/net/mwan3/files/usr/sbin/mwan3track @@ -10,8 +10,9 @@ IFDOWN_EVENT=0 clean_up() { $LOG notice "Stopping mwan3track for interface \"${INTERFACE}\"" - rm "/var/run/mwan3track-${INTERFACE}.pid" &> /dev/null - rm -rf "/var/run/mwan3track/${INTERFACE}" &> /dev/null + if [ "$(pgrep -f "mwan3track ${INTERFACE}")" = "" ]; then + rm -rf "/var/run/mwan3track/${INTERFACE}" &> /dev/null + fi if [ -z "$(ls -A "/var/run/mwan3track")" ]; then rm -rf "/var/run/mwan3track" fi @@ -31,7 +32,6 @@ main() { INTERFACE=$1 DEVICE=$2 - echo "$$" > /var/run/mwan3track-$1.pid mkdir -p /var/run/mwan3track/$1 trap clean_up SIGINT SIGTERM trap if_down SIGUSR1 @@ -103,7 +103,6 @@ main() { if [ $score -eq $up ]; then $LOG notice "Interface $1 ($2) is online" env -i ACTION=ifup INTERFACE=$1 DEVICE=$2 /sbin/hotplug-call iface - rm /var/run/mwan3track-$1.pid rm -rf "/var/run/mwan3track/${1}" &> /dev/null exit 0 fi