Just a comment: 'exit' is not the only way to terminate a shell script prematurely; if any of the scripts call 'set -e' and then any of the commands executed after that fails (i.e. returns a non-zero exit code) the script will terminate.
I would suggest the same debugging technique: adding
exec >> /tmp/dhcp.debug 2>&1
set -x
somewhere near the top of the first dhclient exit hook, and then looking at the execution log in /tmp/dhcp.debug to see whether the dbus-send command from /etc/dhcp3/dhclient-exit-hooks.d/zzzz_dhcdbd got executed or not.
Just a comment: 'exit' is not the only way to terminate a shell script prematurely; if any of the scripts call 'set -e' and then any of the commands executed after that fails (i.e. returns a non-zero exit code) the script will terminate.
I would suggest the same debugging technique: adding
exec >> /tmp/dhcp.debug 2>&1
set -x
somewhere near the top of the first dhclient exit hook, and then looking at the execution log in /tmp/dhcp.debug to see whether the dbus-send command from /etc/dhcp3/ dhclient- exit-hooks. d/zzzz_ dhcdbd got executed or not.