I have been hit by this bug also. Also dhcpd starts normally with dhcp
user but if restarted using the script in init.d, it starts another
instance with root user. Will you ever fix this simple issue?

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to isc-dhcp in Ubuntu.
https://bugs.launchpad.net/bugs/1368688

Title:
  Inconsistence between /etc/init and /etc/init.d files

Status in isc-dhcp package in Ubuntu:
  Confirmed

Bug description:
  After upgrade Ubuntu server from 12.04 LTS to 14.04 LTS (with 
do-release-upgrade) I found a strange behavior in /var/log/messages from 
isc-dhcp-server. It had doubled DHCPREQUESTS/OFFERS/ACKs... It was like:
  ~~
  dhcpd: DHCPDISCOVER from 00:0b:82:27:be:d1 via eth0
  dhcpd: DHCPDISCOVER from 00:0b:82:27:be:d1 via eth0
  DHCPREQUEST for 192.168.1.102 (10.112.1.252) from 00:0b:82:27:be:d1 via eth0
  DHCPREQUEST for 192.168.1.102 (10.112.1.252) from 00:0b:82:27:be:d1 via eth0
  DHCPACK on 192.168.1.102 to 00:0b:82:27:be:d1 via eth0
  DHCPACK on 192.168.1.102 to 00:0b:82:27:be:d1 via eth0
  ~~

  Futher investigation show that there was actually two dhcpd processes:
  ~~
  dhcpd -q -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcp-server/dhcpd.pid
  /usr/sbin/dhcpd -q -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid
  ~~

  The first one was executed from "/etc/init/isc-dhcp-server.conf" and second 
from "/etc/init.d/isc-dhcp-server".
  Looking inside "init/isc-dhcp-server.conf" I found:
  ~~
  respawn
  script
     . /etc/default/isc-dhcp-server
    ......
   exec dhcpd -user dhcpd -group dhcpd -f -q -4 -pf /run/dhcp-server/dhcpd.pid 
-cf $CONFIG_FILE $INTERFACES
  ~~

  As you can see path to PID file is hardcoded.

  But in "init.d/isc-dhcp-server" startup script:
  ~~
  # try to read pid file name from config file, with fallback to 
/var/run/dhcpd.pid
  if [ -z "$DHCPD_PID" ]; then
          DHCPD_PID=$(sed -n -e 's/^[ \t]*pid-file-name[ \t]*"(.*)"[ 
\t]*;.*$/\1/p' < "$DHCPD_CONF" 2>/dev/null | head -n 1)
  fi
  DHCPD_PID="${DHCPD_PID:-/var/run/dhcpd.pid}"
    ......
  case "$1" in
          start)
                  test_config
                  log_daemon_msg "Starting $DESC" "$NAME"
                  start-stop-daemon --start --quiet --pidfile "$DHCPD_PID" \
                          --exec /usr/sbin/dhcpd -- \
                          -q $OPTIONS -cf "$DHCPD_CONF" -pf "$DHCPD_PID" 
$INTERFACES
  ~~

  
  So obivous is to either change init script to NOT use hardcoded path to PID 
file and use $DHCP_PID (from /etc/default/isc-dhcp-server, which is sourced 
inside this script), or at least change it to "default" one: /var/run/dhcpd.pid

  OR

  change init.d script to fallback to "/run/dhcp-server/dhcpd.pid"
  instead of "/var/run/dhcpd.pid"

  P.S. /var/run is a link to /run

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1368688/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to