Export to GitHub

madwimax - issue #45

Не убивается dhclient


Posted on Jan 9, 2010 by Quick Wombat

ОС: Fedora 12 x86_64

После вытаскивания из порта устройства, остается висеть dhclient [liksys@kusanagi ~]$ ps aux | grep dhclient root 20611 0.0 0.0 8968 812 ? S<s 01:16 0:00
sbin/dhclient -pf /var/run/dhclient.wimax0.pid -lf /var/lib/dhcp/dhclient.wimax0.leases wimax0

Соответственно, после повторного вставляния получения адреса не происходит.Для решения проблемы нужно заменить сигналы убивания процесса в /etc/madwimax/event.sh (строки 24 и 28) с SIGTERM на SIGKILL. После этого все работает нормально.

Comment #1

Posted on Feb 18, 2010 by Happy Ox

Если dhclient приходится убивать сигналом SIGKILL - это означает, что что-то сильно не в порядке либо с dhclient, либо с сетевым интерфейсом, на котором он "сидит". SIGKILL - это средство уровня "отрубить питание компу для того, чтобы его просто перезагрузить", в нормальных условиях этот сигнал не должен быть нужным.

У себя на старой Федорке 8 посмотреть, увы, не могу, что там не так: не ловится у меня Yota дома и ещё не скоро начнёт - моей окраины Москвы у них в планах на покрытие пока даже не значится :-(. Но есть предположение, что dhclient подвисает в тот момент, когда убивается tap адаптер, на котором он работает. Т.е. есть вероятность, что выбран неверный момент для шатдауна dhclient-а - уже после того, как интерфейс опущен/прибит.

Верная последовательность должна быть такой: 1. Прибиваем dhclient. 2. "Опускаем интерфейс": ip link set tapXX down 3. Убиваем tapXX (через tuntapctl или ещё каким иным способом).

Comment #2

Posted on Feb 18, 2010 by Quick Wombat

Ну, эту проблему как-то надо решить.

Comment #3

Posted on Feb 19, 2010 by Happy Ox

Разумеется надо. Но только не методом замены сигнала на девятый, а методом "разобраться, почему от SIGTERM dhclient не умирает".

Status: New

Labels:
Type-Defect Priority-Medium