So if radvd is stopped by the neutron l3-agent, it doesn't specify a signal and defaults to '9', so should always cleanup the pid file. But if it dies unexpectedly, or I believe if the l3-agent is restarted and restarts radvd for a network, there could be a stale pid file left behind.
Seems changing this code to be more like the keepalived code would solve the problem - when spawning the first thing it does is try and remove the pid file. I'll send a patch that does that which is pretty small, not sure if anyone has the means to test it to see if it helps in their environment.
So if radvd is stopped by the neutron l3-agent, it doesn't specify a signal and defaults to '9', so should always cleanup the pid file. But if it dies unexpectedly, or I believe if the l3-agent is restarted and restarts radvd for a network, there could be a stale pid file left behind.
Seems changing this code to be more like the keepalived code would solve the problem - when spawning the first thing it does is try and remove the pid file. I'll send a patch that does that which is pretty small, not sure if anyone has the means to test it to see if it helps in their environment.