[package] base-files, ppp: remove protocol specific cleanup code from /sbin/ifdown...
[openwrt/svn-archive/archive.git] / package / ppp / files / ppp.sh
index bc18d1ec9aee94df768c76b0213c19c849184abd..b3c9e5365553de610ae22993d1d7d1715bfaffe3 100644 (file)
@@ -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() {