diff --git a/src/etc/inc/plugins.inc.d/dhcpd.inc b/src/etc/inc/plugins.inc.d/dhcpd.inc index ec83ba6d3..4389b8299 100644 --- a/src/etc/inc/plugins.inc.d/dhcpd.inc +++ b/src/etc/inc/plugins.inc.d/dhcpd.inc @@ -517,11 +517,15 @@ function dhcpd_radvd_configure($verbose = false, $blacklist = []) file_put_contents('/var/etc/radvd.conf', $radvdconf); - killbypid('/var/run/radvd.pid'); - if (count($radvdifs)) { - /* only start in valid configuration for legacy condition */ - mwexec('/usr/local/sbin/radvd -p /var/run/radvd.pid -C /var/etc/radvd.conf -m syslog'); + if (isvalidpid('/var/run/radvd.pid')) { + killbypid('/var/run/radvd.pid', 'HUP'); + } else { + mwexec('/usr/local/sbin/radvd -p /var/run/radvd.pid -C /var/etc/radvd.conf -m syslog'); + } + } else { + /* stop on invalid configuration for legacy condition above */ + killbypid('/var/run/radvd.pid'); } service_log("done.\n", $verbose);