I just installed the new-to-EPEL ndppd service and am seeing this in my log:
Oct 17 21:10:08 saruman systemd: Can't open PID file
/var/run/ndppd/ndppd.pid (yet?) after start: No such file or directory
Examining the source, I see that the pidfile is created by the child
process, not the parent. I'm guessing that systemd is expecting the pidfile
to exist when the parent exits? (I want to file the issue on the upstream
program and want to make sure I understand how this should work.)
Source in question. Note how daemonize() forks and exits and main() invokes
daemonize and then creates the pidfile. I'm thinking that daemonize()
should create the pidfile before it invokes exit().
<https://github.com/DanielAdolfsson/ndppd/blob/master/src/ndppd.cc>