Есть следующий скрипт
#!/bin/bash
ATTEMPT=0
while : ; do
ATTEMPT=`expr $ATTEMPT + 1`
echo "Попытка : $ATTEMPT"
pppd /dev/modem -detach 115200 connect "chat \
ECHO ON \
ABORT 'BUSY' \
ABORT 'NO CARRIER' \
ABORT 'NO DIALTONE' \
'' ATZ \
OK ATDS \
CONNECT '' \
ogin: xxxxxxxx \
ssword: xxxxxxxx \
EXIT=$?
if [ $EXIT = 5 ]; then
exit
fi
done
От него требуется завершаться по нажатию ctrl-c. Когда chat завершает свою работу и pppd непосредственно преступает к поднятию ppp на линии, сигнал SIGTERM можно установить по коду выхода 5. Здесь проблем нет.
Проблема в chat. Она вызывается pppd и я не могу найти способа определить код выхода. Есть ещё у pppd код выхода 8 (connect script failied), но это не выход, т.к. по сигналам модема BUSY и т.п. нужен перезвон.
Внимание, вопрос :-)
1) Можно ли отловить код выхода chat ?
2) Если нет, то есть ли какие-то другие способы реализации требуемого ?