#!/bin/bash PATH=/sbin:/usr/sbin:/bin:/usr/bin cd /etc/sysconfig/network-scripts CONFIG=$1 . network-functions source_config if [ ! -f /var/run/ppp-$DEVICE.dev ]; then # ppp isn't running, or we didn't start it exit 0 fi file=/var/run/`cat /var/run/ppp-$DEVICE.dev`.pid # signals ifup-ppp not to persist -- must do this before exiting if PPP # has not yet started ($file does not exist). rm -f /var/run/ppp-$DEVICE.dev if [ ! -f $file ]; then exit 0 fi PID=`cat $file` if [ -z "$PID" ]; then exit 1 fi # pppd might have chat as a child; remember chat's pid to kill after pppd. # (After, not before, so that pppd doesn't just restart it). CHATPID=`ps aul | awk '$4 ~ $PID {print $3}' 2>/dev/null` kill $PID > /dev/null 2>&1 [ -n "$CHATPID" ] && kill $CHATPID > /dev/null 2>&1 if [ ! -d /proc/$PID ]; then /etc/sysconfig/network-scripts/ifdown-post $1 exit 0 fi sleep 2 if [ ! -d /proc/$PID ]; then /etc/sysconfig/network-scripts/ifdown-post $1 exit 0 fi kill -KILL $PID > /dev/null 2>&1 if [ -d /proc/$PID ]; then logger -p daemon.info -t ifdown-ppp "ifdown-ppp unable to kill pppd-$DEVICE" & else /etc/sysconfig/network-scripts/ifdown-post $1 fi exit 1