We are using CentOS as base system and can't switch to BSD. I am not sure which signal can be sent to the dhclient in order to recalculate sleep/wake timestamps. Select can be canceled on signal reception but after that dhclient is going to sleep again till the next date, which is calculated not from current time, but from the scheduled one.
I am solving this problem by replacing gettimeofday() with clock_gettime(CLOCK_MONOTONIC_RAW,..) for dhclient. LD_PRELOAD with gettimofday()# replacement library does the trick. #Proper solution will require modification of the dhclient scheduler.
Thanks for quick reply.