Re: mgetty и bforce
- From
- Andrey Slusar (2:467/126)
- To
- Igor Mitichev
- Date
- 2005-08-23T23:21:18Z
- Area
- RU.UNIX.FTN
Tue, 23 Aug 2005 19:07:28 +0300, Igor Mitichev wrote to Elohin Igor':
>>> Так вот как раз imho у mgetty и bforce lock'и разнесены по разным
>>> каталогам. Где это прописывается тут говорили. Проверь этот вопрос.
EI>> Если mgetty или точнее vgetty стоит в качестве автоответчика - о
EI>> каком lock'е может идти речь ? Он просто слушает порт.
IM> Рассказываю. Mgetty запускается из файла /etc/inittab примерно
IM> следующей командой: d2:2345:respawn:/sbin/mgetty -D /dev/ttyS1 (в твоем
IM> случае, видимо, -D не будет).
IM> При этом, он действительно с одной стороны слушает модемный
IM> порт. Разберем эту сторону. Когда из модема поступает "Ring", mgetty
IM> отвечает в порт "ATA", после чего модем поднимает трубку и устанавливает
IM> соединение. Какое это будет соединение -- пока не понятно. Но в
IM> конце-концов со стороны модема что-то приходит. Вот это что-то и
IM> анализируется mgetty. И на основании этого анализа mgetty запускает
IM> дочернний процесс (будь то pppd, фидошный мейлер или любой другой
IM> прикладной софт), а сама прекращает работу, выгружается из
IM> памяти. Запушенный дочерний процесс делает свое дело, а по его
IM> завершении так же прекращает работу. Модемный порт остается
IM> "безхозным". Но! Но в упоминаемом выше файле /etc/inittab есть одна
IM> замечательная способность: процесс, запущщеный в режиме respawn если и
IM> прекратит свою работу, то будет по-новой перезапущен системой. Таким
IM> образом, как только порт освобождается, система запускает новую копию
IM> mgetty, которая и продолжает отслеживать состояние порта. Это с одной
IM> стороны. Но есть и другая сторона: mgetty с этой другой стороны смотрит
IM> в каталог /var/lock. И если обнаруживает там флаг занятости порта, так
IM> же завершает свою работу. То есть при, например, исходящих звонках,
IM> фидошный мейлер создает флаг занятости порта, mgetty, отследив этот
IM> момент, выгружается, мейлер устанавливает исходящее соединение, после
IM> чего удаляет за собой флаг занятости модема. Mgetty, обнаружив что
IM> такого флага больше нет, запускается новой копией (мы все еще помним про
IM> режим respawn в inittab?).
IM> В твоем же случае, mgetty не видит флага занятости модема, не
IM> выгружается, а как ни в чем не бывало продолжает его слушать. При этом,
IM> если мейлер пытается сделать исходящее соединение, mgetty, видимо,
IM> воспринимает сигналы в порту как руководство к действию и начинает
IM> управлять модемом. В результате имеем несогласованность работы двух
IM> софтин, сидящих на одном девайсе. Ну и тот самый геморой, который ты
IM> описал несколькими письмами ранее.
IM> Во всяком случае, мне с моим рабоче-крестьянским образованием такая
IM> версия развития событий кажется вполне правдоподобной, чтобы проверить
IM> идентичность путей, по которым разные программы создают флаги занятости
IM> модемного порта.
Все примерно правильно, но mgetty не выгружается если кто-то уже
залочил порт, а просто его перестает "слушать".
--
Всего хорошего.
Андрей.
...Вскрытие показало, что больной - спал.
--- Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.17
* Origin: http://sourceforge.net/projects/rusfidogate (2:467/126)
SEEN-BY: 46/50 400/814 450/1024 462/30 463/614 467/31 61 70 99 112 117 126 127
SEEN-BY: 467/129 469/125 550/357 4615/59 4621/18 4623/56 5000/5000 5010/53
SEEN-BY: 5011/13 5012/46 5015/10 28 5019/31 5020/545 715 2871 4441 5021/29
SEEN-BY: 5025/3 5027/16 5030/115 5035/38 5036/34 5053/16 5054/1 8 9 18 37 45
SEEN-BY: 5054/63 67 81 5059/9 5060/3 5062/10 5063/3 5069/7 5077/70 5080/1003
SEEN-BY: 5085/13 5092/1 5095/20 5096/18 6000/12 254 6001/10
PATH: 467/126 70 46/50 5020/545 5054/1 37