On modification of lists, we should send real-time signal 0 instead of SIGHUP. This also preserves the DNS cache of not-blocked domains.

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER 2019-12-11 21:47:46 +00:00
parent 3231e5c3ba
commit 69a909fc4c
No known key found for this signature in database
GPG key ID: 00135ACBD90B28DD
2 changed files with 12 additions and 4 deletions

View file

@ -257,5 +257,5 @@ echo "DONE"
fi fi
if [[ "${reload}" != false ]]; then if [[ "${reload}" != false ]]; then
pihole restartdns reload pihole restartdns reload-lists
fi fi

14
pihole
View file

@ -105,17 +105,25 @@ restartDNS() {
svcOption="${1:-restart}" svcOption="${1:-restart}"
# Determine if we should reload or restart # Determine if we should reload or restart
if [[ "${svcOption}" =~ "reload" ]]; then if [[ "${svcOption}" =~ "reload-lists" ]]; then
# Reload has been requested # 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 # Note: This will NOT re-read any *.conf files
svc="killall -s SIGHUP ${resolver}" svc="killall -s SIGHUP ${resolver}"
str="Flushing DNS cache"
else else
# A full restart has been requested # A full restart has been requested
svc="service ${resolver} restart" svc="service ${resolver} restart"
str="Restarting DNS server"
fi fi
# Print output to Terminal, but not to Web Admin # Print output to Terminal, but not to Web Admin
str="${svcOption^}ing DNS service"
[[ -t 1 ]] && echo -ne " ${INFO} ${str}..." [[ -t 1 ]] && echo -ne " ${INFO} ${str}..."
output=$( { ${svc}; } 2>&1 ) output=$( { ${svc}; } 2>&1 )