Доброго всем времени суток!
Введение: в linux модуль ядра, отвечающий за, например, ttyS0, посылает группе процессов, связанных с этим ttyS0 сигнал SIGHUP в случае разъединения данного терминала. Так, например, если pppd держит открытым ttyS0, то он получает SIGHUP в случае если модем положил трубку по причине обрыва связи, и обрабатывает его, завершая работу… В моем случае используется виртуальная пара /dev/ptms и /dev/pts/x (где x — номер вирт. slave терминала). /dev/ptms «слушает» демон slmodem. /dev/pts/x — демон pppd. Вопрос: как определить PGID/PID pppd в slmodem, чтобы послать ему/группе SIGHUP при обрыве соединения. Или есть другие варианты решения проблемы? Как можно реализовать поведение /dev/pts/x , аналогичное поведению /dev/ttySx ?
P.S. Использвование lcp-echo-failure опции в pppd — не предлагать. :)
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
fuser -auv
lsof
в общем, что-то типа.
А ядро или glibc подобных функций не имеют?
ну, вроде бы как имеют.
программы же эти как-то данную информацию добывают?
ну вот, и смотри их самих..
собственно, я в самом программировании не очень — дминистрирование как-то большую часть времени отнимает.
Долгие поиски, вопросы и расспросы дали следующую информацию (проверенную уже и на практике). Для того, чтобы послать HUP всем процессам, открывшим какой-либо из псевдотерминалов, необходимо просто закрыть дескриптор мастер-терминала /dev/ptmx, полученный при создании пары master-slave псевдотерминалов.
Вот и все. :)