# Workaround:
dpkg-divert --divert /etc/init.d/isc-dhcp-server.disabled --rename
/etc/init.d/isc-dhcp-server
ln -s /lib/init/upstart-job /etc/init.d/isc-dhcp-server
--
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