Package: isc-dhcp-server
Version: 4.3.5-3
Severity: normal
Dear Maintainer,
The isc-dhcp-server service refuses to start ("systemctl start
isc-dhcp-server")
if the pidfile (/run/dhcpd.pid) is present, even if dhcpd is
not running. Reproducing this is easy given working dhcpd configuration:
$ systemctl start isc-dhcp-server
$ cat /run/dhcpd.pid|xargs kill
$ systemctl start isc-dhcp-server
Now dhcpd will not be running:
$ ps aux|grep dhcpd
This is problematic if the service has crashed abnormally, as external
monitoring systems like monit won't be able to restart the service easily.
The problem is on lines 102-105 in /etc/init.d/isc-dhcp-server:
if [ -e "$PIDFILE" ]; then
log_failure_msg "dhcpd service already running (pid file $PIDFILE
currenty exists)"
exit 1
fi
Interestingly the status target can already handle the "pidfile is present but
dhcpd is not running" case, see line 83:
test "$OPTION" != -v || echo "$NAME is not running but $PIDFILE exists."
Removing the pidfile manually before starting the service solves the problem.
I would expect the init script to start dhcpd if it is not running, even if
pidfile is present.
-- System Information:
Debian Release: 9.0
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.9.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages isc-dhcp-server depends on:
ii debconf [debconf-2.0] 1.5.61
ii debianutils4.8.1.1
ii libc6 2.24-11
ii libdns-export162 1:9.10.3.dfsg.P4-12.3
ii libirs-export141 1:9.10.3.dfsg.P4-12.3
ii libisc-export160 1:9.10.3.dfsg.P4-12.3
ii lsb-base 9.20161125
Versions of packages isc-dhcp-server recommends:
ii isc-dhcp-common 4.3.5-3
ii policycoreutils 2.6-3
Versions of packages isc-dhcp-server suggests:
pn isc-dhcp-server-ldap
ii policykit-1 0.105-18
-- Configuration Files:
/etc/dhcp/dhcpd.conf changed [not included]
-- debconf information excluded