[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