<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-text-plain" wrap="true" style="font-family:
      -moz-fixed; font-size: 12px;" lang="x-unicode">
      <pre wrap="">Hello Prashantkumar:

I suspect you may be running a packaged version of the software, rather than our officially released software. Unless you build from our source and define ENABLE_GENTLE_SHUTDOWN (undefined by default), neither dhcpd nor dhclient install signal handlers and will, if sent a SIGTERM promptly stop.

As you can see from the following strace of dhcpd built without ENABLE_GENTLE_SHUTDOWN (the default), the process terminates forthwith:

 
dhcpd without ENABLE_GENTLE_SHUTDOWN:
-------------------------------------------------------------------------------
tmark@cserver ~ $ sudo /usr/bin/strace -ttT -s 100 -ff -p `pgrep dhcpd`
/usr/bin/strace: Process 15129 attached
06:55:40.028953 select(22, [4 5 7 8 9], [], NULL, NULL) = ? ERESTARTNOHAND (To be restarted if no handler) <10.294941>
06:55:50.324192 --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=15191, si_uid=0} ---
06:55:50.340149 +++ killed by SIGTERM +++
--------------------------------------------------------------------------------


Defining ENABLE_GENTLE_SHUTDOWN adds signal handlers that for dhclient will cause it to release it's address(es) and for dhcpd, IF it's part of a failover pair, to go through partner down.   Here's dhcpd strace after rebuilding with ENABLE_GENTLE_SHUTDOWN but not running as part of a failover pair:


-----------------------------------------------------------------------------
tmark@cserver ~ $ sudo /usr/bin/strace -ttT -s 100 -ff -p `pgrep dhcpd`
/usr/bin/strace: Process 14926 attached
06:53:30.163410 select(22, [4 5 7 8 9], [], NULL, NULL) = ? ERESTARTNOHAND (To be restarted if no handler) <18.171104>
06:53:48.334888 --- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=15020, si_uid=0} ---
06:53:48.334957 rt_sigreturn({mask=[]}) = -1 EINTR (Interrupted system call) <0.000014>
06:53:48.335074 sendto(3, "<182>Mar 27 06:53:48 dhcpd: Received signal 15, initiating shutdown.", 68, MSG_NOSIGNAL, NULL, 0) = 68 <0.000108>
06:53:48.335258 write(2, "Received signal 15, initiating shutdown.", 40) = 40 <0.000147>
06:53:48.335447 write(2, "\n", 1)       = 1 <0.000103>
06:53:48.335597 select(22, [4 5 7 8 9], [], NULL, {0, 0}) = 0 (Timeout) <0.000019>
06:53:48.335714 close(9)                = 0 <0.000023>
06:53:48.335789 sendto(3, "<182>Mar 27 06:53:48 dhcpd: Disabling output on LPF/enp0s10/08:00:27:c7:c6:20/178.16.1.0/24", 91, MSG_NOSIGNAL, NULL, 0) = 91 <0.000030>
06:53:48.335856 write(2, "Disabling output on LPF/enp0s10/08:00:27:c7:c6:20/178.16.1.0/24", 63) = 63 <0.000103>
06:53:48.335991 write(2, "\n", 1)       = 1 <0.000127>
06:53:48.336165 close(5)                = 0 <0.006051>
06:53:48.342269 sendto(3, "<182>Mar 27 06:53:48 dhcpd: Disabling input on LPF/enp0s10/08:00:27:c7:c6:20/178.16.1.0/24", 90, MSG_NOSIGNAL, NULL, 0) = 90 <0.000035>
06:53:48.342347 write(2, "Disabling input on LPF/enp0s10/08:00:27:c7:c6:20/178.16.1.0/24", 62) = 62 <0.000114>
06:53:48.342497 write(2, "\n", 1)       = 1 <0.000123>
06:53:48.342664 sendto(3, "<182>Mar 27 06:53:48 dhcpd: Disabling output on LPF/enp0s9/08:00:27:30:e5:6c/175.16.1.0/24", 90, MSG_NOSIGNAL, NULL, 0) = 90 <0.000064>
06:53:48.342764 write(2, "Disabling output on LPF/enp0s9/08:00:27:30:e5:6c/175.16.1.0/24", 62) = 62 <0.000110>
06:53:48.342943 write(2, "\n", 1)       = 1 <0.000091>
06:53:48.343063 close(7)                = 0 <0.016188>
06:53:48.359464 sendto(3, "<182>Mar 27 06:53:48 dhcpd: Disabling input on LPF/enp0s9/08:00:27:30:e5:6c/175.16.1.0/24", 89, MSG_NOSIGNAL, NULL, 0) = 89 <0.000124>
06:53:48.359753 write(2, "Disabling input on LPF/enp0s9/08:00:27:30:e5:6c/175.16.1.0/24", 61) = 61 <0.001290>
06:53:48.361294 write(2, "\n", 1)       = 1 <0.000565>
06:53:48.362482 unlink("output/v4.pid") = 0 <0.001224>
06:53:48.364292 exit_group(0)           = ?
06:53:48.366991 +++ exited with 0 +++
-------------------------------------------------------------------------------
                                                     
              
Please note the log message being emitted, reflecting that the signal has been received;

   06:53:48.335258 write(2, "Received signal 15, initiating shutdown.", 40) = 40 <0.000147>

And you can see from the above that does a bit more tidying up before stopping.

           
If you are not building from our released source, you may wish to try that:

    <a class="moz-txt-link-freetext" href="https://www.isc.org/downloads/dhcp/">https://www.isc.org/downloads/dhcp/</a>

otherwise, you will need to reach out to the packager.


Regards,

Thomas Markwalder
ISC Software Engineering

</pre>
    </div>
  </body>
</html>