X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=package%2Fppp%2Ffiles%2Fppp.sh;h=b3c9e5365553de610ae22993d1d7d1715bfaffe3;hp=bc18d1ec9aee94df768c76b0213c19c849184abd;hb=66ab73d01f264bd8d3043809d47ab071ad3670a0;hpb=731983969a1340b613db96111eb7371d57728dd6 diff --git a/package/ppp/files/ppp.sh b/package/ppp/files/ppp.sh index bc18d1ec9a..b3c9e53655 100644 --- a/package/ppp/files/ppp.sh +++ b/package/ppp/files/ppp.sh @@ -10,8 +10,13 @@ stop_interface_ppp() { local link="${proto:-ppp}-$ifname" [ -f "/var/run/ppp-${link}.pid" ] && { local pid="$(head -n1 /var/run/ppp-${link}.pid 2>/dev/null)" - grep -qs pppd "/proc/$pid/cmdline" && kill -TERM $pid + grep -qs pppd "/proc/$pid/cmdline" && kill -TERM $pid && \ + while grep -qs pppd "/proc/$pid/cmdline"; do sleep 1; done + rm -f "/var/run/ppp-${link}.pid" } + + local lock="/var/lock/ppp-$link" + [ -f "$lock" ] && lock -u "$lock" } start_pppd() {