[d-kernel] о pppd, группах процессов, терминалах, /dev/pts и SIGHUP
Artem
u2u на nm.ru
Чт Окт 13 14:48:13 MSD 2005
Sergey Vlasov wrote:
>
>devpts просто автоматически создаёт файлы устройств для
>slave-терминалов при открытии /dev/ptmx (при каждом открытии создаётся
>новый терминал). Дальнейшая работа идёт одинаково и для /dev/ptmx, и
>для BSD-style /dev/pty* (где программа должна самостоятельно искать
>свободное устройство, перебирая файлы в /dev).
>
>
>
Насколько я понял, ptmx - это своего рода "мультиплексор" (MX) ? :-)
>>Функций, подобных tty_hangup в /dev/pts я не обнаружил.
>>
>>
>
>Эти функции лежат в drivers/char/pty.c.
>
>
Отлично... Вечером посмотрю... Но, насколько я понимаю, их использование
из usermode (в коем работает slmodemd) - невозможно?
>
>
>>Неужели единственным вариантом является сканирование /proc на
>>предмет открытого процессами /dev/pts/x и отсылка всем обнаруженным
>>процессам SIGHUP- а?
>>
>>
>
>tty_vhangup() для slave вызывается при закрытии master-а. Т.е., при
>разрыве соединения slmodemd должен закрыть дескриптор, полученный при
>открытии /dev/ptmx. Перед закрытием нужно открыть /dev/ptmx ещё раз,
>получить новое имя slave и перенаправить ссылку /dev/ttySL* на него;
>после закрытия нужно переключиться на использование нового дескриптора
>вместо закрытого. (Если переоткрывать /dev/ptmx после закрытия
>предыдущего, в течение некоторого времени /dev/ttySL* будет указывать
>на несуществующий терминал, что нежелательно.)
>
>Да, права на /dev/ttySL* при этом будут каждый раз слетать - их тоже
>придётся переустанавливать.
>
>
>
Кратко, точно и по существу... Спасибо! :-)
>>Ведь при обрыве соединения по вине софтмодема - pppd работает
>>дальше, не зная о том, что физический уровень уже давно в дауне.
>>Соответственно - никакого пересоединения.
>>
>>
>
>Для pppd это можно пытаться обходить костылями, указанными в соседнем
>письме, но в общем случае это не решает проблему.
>
>
Да, несомненно...
Rgds, Artem.
Подробная информация о списке рассылки devel-kernel