diff --git a/advanced/Scripts/list.sh b/advanced/Scripts/list.sh index c5bf5b2a..320d4ae8 100755 --- a/advanced/Scripts/list.sh +++ b/advanced/Scripts/list.sh @@ -257,5 +257,5 @@ echo "DONE" fi if [[ "${reload}" != false ]]; then - pihole restartdns reload + pihole restartdns reload-lists fi diff --git a/pihole b/pihole index f0195843..cc7e1b7c 100755 --- a/pihole +++ b/pihole @@ -105,17 +105,25 @@ restartDNS() { svcOption="${1:-restart}" # Determine if we should reload or restart - if [[ "${svcOption}" =~ "reload" ]]; then - # Reload has been requested + if [[ "${svcOption}" =~ "reload-lists" ]]; then + # Reloading of the lists has been requested + # Note: This will NOT re-read any *.conf files + # Note 2: We cannot use killall here as it does + # not know about real-time signals + svc="kill -SIGRTMIN $(pidof ${resolver})" + str="Reloading DNS lists" + elif [[ "${svcOption}" =~ "reload" ]]; then + # Reloading of the DNS cache has been requested # Note: This will NOT re-read any *.conf files svc="killall -s SIGHUP ${resolver}" + str="Flushing DNS cache" else # A full restart has been requested svc="service ${resolver} restart" + str="Restarting DNS server" fi # Print output to Terminal, but not to Web Admin - str="${svcOption^}ing DNS service" [[ -t 1 ]] && echo -ne " ${INFO} ${str}..." output=$( { ${svc}; } 2>&1 )