}
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
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
}
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}"
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()
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
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
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