опускаю pppoe и должены удалиться правила iptables и маршруты скриптом из /etc/ppp/ip-down.d. это не работает В скрипте /usr/sbin/pppoe-stop нашёл строки: # Kill pppd, which should in turn kill pppoe if [ -r "$PPPD_PIDFILE" ] ; then PPPD_PID=`cat "$PPPD_PIDFILE"` $LOGGER -p daemon.notice "Killing pppd" echo "Killing pppd ($PPPD_PID)" kill $PPPD_PID > /dev/null 2>&1 || exit 1 fi Тут всё понятно, вопросов нет.. Но зачем строки: # Kill pppd again, in case it's still hanging around if [ -r "$PPPD_PIDFILE" ] ; then PPPD_PID=`cat "$PPPD_PIDFILE"` kill -9 $PPPD_PID > /dev/null 2>&1 || exit 1 fi Эти строки по замыслу разработчиков добивают процесс если он по предыдущим строкам не завершился. Они гарантированно опустят канал. Короче говоря, pppd никогда не успевает самостоятельно завершиться, он принудительно убивается. Я эти строки заккоментировал. Теперь скрипты ip-down выполняются и pppd останавливается. Зависаний процесса не наблюдал. Если по какой-то причине процесс не остановится, то stop отработает со статусом success и последующий start тоже. Нужно чтобы start ругался на присутствие процесса.
* Mon Mar 28 2011 Mikhail Efremov <sem@altlinux> 3.10-alt2 - gui: Fix manual page showing (by Boris Revyakin). - pppoe-stop: Give pppd time for clean exit (closes: #17762). - Fix Group. - Fix License. - gui: Replace Debian menu entry with desktop file (thanks Igor Vlasenko). - init script: fix exit status (closes: #9504). - own /usr/share/doc/tkpppoe. Автомат не сработал почему-то