В общем, я, похоже, нашел, в чем проблема, и даже сумел ее поправить. При этом наткнулся на баг (точнее, даже пару связанных) в pppd, повесил на http://ppp.samba.org/cgi-bin/ppp-bugs/incoming?id=1285. Основная идея: когда юзер нажал Ctrl-C, pppp-watch смотрит .pid-файл, создаваемый pppd, и, если нашел - по полученному pid'у убивает pppd. Однако, pppd создает этот файл не сразу, а только когда установится соединение (отработает chat-скрипт, например). Поэтому, если .pid-файл не найден, то мы ищем pppd, запущенный с нужным на параметром, в /proc. Если нашли - ждем 10 секунд (должно хватить), периодически проверяя, не появился ли .pid-файл, как только появился - убиваем pppd. Можно юыло бы, найдя pppd в /proc, сразу убивать pppd, но этому мешает упомянутая выше бага. Если этот патч появится в Сизифе - буду очень рад, если в backports - еще больше :) (message from Valentin Lavrinenko <lvu uaservice com ua> in community@)
Created attachment 1208 [details] ppp-watch workaround by Valentin Lavrinenko <lvu@uaservice.com.ua>
reassign (right?..)
*** Bug 8311 has been marked as a duplicate of this bug. ***
Кто-нибудь сам проверял проблему и решение?
(In reply to comment #4) > Кто-нибудь сам проверял проблему и решение? Я-то проверял :) Мой аккаунт на багзилле наконец-то заработал, теперь смогу сам за багой следить. Спасибо Michael Shigorin за вывешивание. Возможно ли (нужно ли) сменить репортера на меня?
(In reply to comment #5) > Возможно ли (нужно ли) сменить репортера на меня? Кажется, нет (да и разницы-то?).
Created attachment 1230 [details] New version of the patch Новая версия патча - после более тщательного тестирования обнаружил, что старая работала плохо. Теперь вместо того, чтобы просто ждать появления .pid-файла, мы попутно ищем connect-script, запущенный интересующим нас pppd (обычно это chat). На убивание chat'а pppd реагирует нормально, выходит с кодом 8 (connect script failed). Поскольку иногда надо знать, что именно юзер убил дозвон, мы подменяем 8 на 5, если до SIGCHLD был получен SIGINT или SIGTERM.
Я уже давно не пользуюсь ppp-watch и net-scripts, к сожалению. Не знаю, что делать с этим.
(In reply to comment #8) > Я уже давно не пользуюсь ppp-watch и net-scripts, к сожалению. Не знаю, что > делать с этим. А есть какая-то альтернатива, в том же etcnet? Я могу попытаться воткнуть его в ALM 2.4, но хочется, чтобы аналог ppp-watch'а там был.
ppp-watch позволяет продолжить загрузку системы, отправив pppd продолжать в фон, если первая попытка не удалась. Требуется то же самое в /etc/net?
Может быть, кто-то хочет заняться net-scripts самостоятельно?
http://bugzilla.altlinux.org/show_bug.cgi?id=10095 - исправление упомянутых багов (в т.ч. и первоначального, касающегося ppp-watch) в самом pppd. Может, этот надо Mark as duplicate?
Честно говоря, я давно уже потерял контекст и с удовольствием переназначил бы этот баг на кого-нибудь другого.
(In reply to comment #13) > Честно говоря, я давно уже потерял контекст и с удовольствием переназначил бы > этот баг на кого-нибудь другого. Я ж говорю, не переназначить, а закрыть как дупликат. И он сразу уйдет к legion@ :)
наверное, ppp займёмся мы.
Так предложенный в #10095 патч считать более правильным? (+перевесил на себя)
reassign
(In reply to comment #12) > Может, этот надо Mark as duplicate? Так и поступим. *** This bug has been marked as a duplicate of 10095 ***