The RAM in my pfSense router recently went bad which caused all sorts of problems. The biggest problem being that I could not get DHCP leases. When I looked at the pfSense logs (via the web GUI) I was seeing dhcpd attempt to start but then report "There's already a DHCP server running" followed by an "exit".
I figured there was probably a stale pid on the system. After further investigation through ssh I found the pid at /var/dhcpd/var/run/dhcpd.pid. The problem was I couldn't unlink the file. (Permission denied! plus no sudo command on pfSense.)
No amount of restarting the dhcpd service would suffice, the stale PID remained. Rebooting also did not work.
Then I found a solution. From the pfSense web GUI Diagnostics > Command Prompt...
Execute, then restart the dhcpd service via the web GUI (Status > Services) and DHCP is working once again.