Итак, я запускаю PPP под linux с сотовым модемом. Программа, которую я пишу, должна знать, активна ли ссылка, прежде чем отправлять какие-либо данные.
Какие у меня есть варианты проверить
Кроме того, как лучше всего его перезапустить - я бы хотел, чтобы программа контролировала, когда он запускается и останавливается, поэтому я предполагаю, что init.d не подходит. Использование system(), похоже, не дает PID, есть ли другие варианты, кроме fork() и множества вызовов exec??()?
C в Linux на ARM (настраиваемый дистрибутив с использованием buildroot).
Ой, спасибо, потеря была минимальной. Честно говоря, я думал, что будет намного лучше со всем, что было перенесено с течением времени.





Вы можете разобрать /proc/net/route.
Вы можете использовать функциональные возможности сценария ip-up для pppd, чтобы он выполнял программу, когда IP-интерфейс включен и готов. Подробности в pppd (8) справочная страница - ищите "ip-up".
Чтобы перезапустить pppd, используйте параметр linkname, чтобы установить известное имя pidfile (/var/run/ppp-name.pid). Также используйте опцию persist. Если вы хотите перезапустить pppd, отправьте сигнал SIGHUP. Опять же, это описано на странице руководства.
@ Адам: Пересчет репутации завершен. Приносим извинения за потерю. :(