diff options
author | Chris Buechler <cmb@pfsense.org> | 2014-08-22 07:26:43 -0500 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2014-08-22 07:26:43 -0500 |
commit | a762649bb0a9a79a662f4a4d6cf69eba87696480 (patch) | |
tree | f9ed92224086fa94cbf66c748e5c0edbbdfaf766 /etc/inc | |
parent | b6a7a5a98cb2d2423479542e81f086c32f742554 (diff) | |
download | pfsense-a762649bb0a9a79a662f4a4d6cf69eba87696480.zip pfsense-a762649bb0a9a79a662f4a4d6cf69eba87696480.tar.gz |
delete the dhcpd.pid file before starting dhcpd. Fixes bug where on rare occasions a stale PID file could prevent dhcpd from starting until it's manually deleted.
Diffstat (limited to 'etc/inc')
-rw-r--r-- | etc/inc/services.inc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/etc/inc/services.inc b/etc/inc/services.inc index 8adf750..cfee6ce 100644 --- a/etc/inc/services.inc +++ b/etc/inc/services.inc @@ -898,6 +898,10 @@ EOD; if (!file_exists("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases")) @touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd.leases"); + /* make sure there isn't a stale dhcpd.pid file, which can make dhcpd fail to start. */ + /* if we get here, dhcpd has been killed and is not started yet */ + unlink_if_exists("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpd.pid"); + /* fire up dhcpd in a chroot */ if (count($dhcpdifs) > 0) { mwexec("/usr/local/sbin/dhcpd -user dhcpd -group _dhcp -chroot {$g['dhcpd_chroot_path']} -cf /etc/dhcpd.conf -pf {$g['varrun_path']}/dhcpd.pid " . @@ -1215,6 +1219,10 @@ EOD; if (!file_exists("{$g['dhcpd_chroot_path']}/var/db/dhcpd6.leases")) @touch("{$g['dhcpd_chroot_path']}/var/db/dhcpd6.leases"); + /* make sure there isn't a stale dhcpdv6.pid file, which may make dhcpdv6 fail to start. */ + /* if we get here, dhcpdv6 has been killed and is not started yet */ + unlink_if_exists("{$g['dhcpd_chroot_path']}{$g['varrun_path']}/dhcpdv6.pid"); + /* fire up dhcpd in a chroot */ if (count($dhcpdv6ifs) > 0) { mwexec("/usr/local/sbin/dhcpd -6 -user dhcpd -group _dhcp -chroot {$g['dhcpd_chroot_path']} -cf /etc/dhcpdv6.conf -pf {$g['varrun_path']}/dhcpdv6.pid " . |