The culprit is /etc/madwimax/event.sh which doesn't stop dhclient gracefully. Here's a snippet showing the handling of dhclient3 and dhclient (version 4).
[...]
if-up)
if [ -x /sbin/dhclient3 ]; then /sbin/dhclient3 -nw -pf /var/run/dhclient."$2".pid -lf /var/lib/dhcp3/dhclient."$2".leases "$2" >/dev/null 2>&1
elif [ -x /sbin/dhclient ]; then /sbin/dhclient -pf /var/run/dhclient."$2".pid -lf /var/lib/dhcp/dhclient."$2".leases "$2"
[...]
if-down)
if [ -x /sbin/dhclient3 ]; then /sbin/dhclient3 -r -pf /var/run/dhclient."$2".pid -lf /var/lib/dhcp3/dhclient."$2".leases "$2" >/dev/null 2>&1
elif [ -x /sbin/dhclient ]; then kill -TERM $(cat /var/run/dhclient."$2".pid)
On the last line, not "kill", but "dhclient -r" should be used, as in the /sbin/dhclient3 case.
Egor: Thanks for the additional information.
The culprit is /etc/madwimax/ event.sh which doesn't stop dhclient gracefully. Here's a snippet showing the handling of dhclient3 and dhclient (version 4).
[...]
/sbin/ dhclient3 -nw -pf /var/run/ dhclient. "$2".pid -lf /var/lib/ dhcp3/dhclient. "$2".leases "$2" >/dev/null 2>&1
/sbin/ dhclient -pf /var/run/ dhclient. "$2".pid -lf /var/lib/ dhcp/dhclient. "$2".leases "$2"
/sbin/ dhclient3 -r -pf /var/run/ dhclient. "$2".pid -lf /var/lib/ dhcp3/dhclient. "$2".leases "$2" >/dev/null 2>&1
kill -TERM $(cat /var/run/ dhclient. "$2".pid)
if-up)
if [ -x /sbin/dhclient3 ]; then
elif [ -x /sbin/dhclient ]; then
[...]
if-down)
if [ -x /sbin/dhclient3 ]; then
elif [ -x /sbin/dhclient ]; then
On the last line, not "kill", but "dhclient -r" should be used, as in the /sbin/dhclient3 case.