You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After a report on Discourse, investigations have revealed that SIGRTMIN are defined differently in Debian (glibc-based) and Alpine (musl-based). Hence, sending signals relative to SIGRTMIN is going to be an issue on Debian as we build the pihole-FTL binaries on Alpine. Change the documentation to use fixed signals (instead of relative ones) to fix this. Signals relative to the constant SIGRTMIN have been added as there is a certain number ambiguity under glibc (see man 7 signals). However, this ambiguity does not exist in musl-based binaries.
Copy file name to clipboardExpand all lines: docs/ftldns/signals.md
+10-12Lines changed: 10 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,15 +33,13 @@ When FTL receives a `SIGHUP`, it clears the entire DNS cache, and then
33
33
34
34
While `SIGHUP` updates/flushes almost everything, such a massive operation is often not necessary. Hence, we added several small real-time signals available for fine-grained control of what FTL does. When you see `SIGHUP` as a "big gun", the real-time signals are rather the "scalpel" to serve rather specific needs.
35
35
36
-
Real-time signals are not guaranteed to have the same number on all operating systems. FTL will adapt accordingly. For the signals described below, we will always specify them with the real-time signal ID and the *typical* signal number in parentheses.
37
-
38
-
Real-time signal can always be executed relative to the first (= minimum) real-time signal just like (for real-time signal 0):
36
+
Real-time signals are not guaranteed to have the same number on all operating systems as the value of the constant `SIGRTMIN` may vary. For the signals described below, we recommend using the exact signal number described in the parentheses, e.g., real-time signal 0 (35) can be sent like:
39
37
40
38
```bash
41
-
sudo pkill -SIGRTMIN+0 pihole-FTL
39
+
sudo pkill -SIG35 pihole-FTL
42
40
```
43
41
44
-
## Real-time signal 0
42
+
## Real-time signal 0 (35)
45
43
46
44
This signal does:
47
45
@@ -55,30 +53,30 @@ The most important difference to `SIGHUP` is that the DNS cache itself is **not*
55
53
56
54
This is the preferred signal to be used after manipulating the `gravity.db` database manually as it reloads only what is needed in this case.
57
55
58
-
## Real-time signal 1
56
+
## Real-time signal 1 (36)
59
57
60
58
*Reserved* - Currently ignored
61
59
62
-
## Real-time signal 2
60
+
## Real-time signal 2 (37)
63
61
64
62
*Reserved* - Used for internal signaling that a fork or thread crashed and needs to inform the main process to shut down, storing the last (valid) queries still into the long-term database.
65
63
66
-
## Real-time signal 3
64
+
## Real-time signal 3 (38)
67
65
68
66
Reimport alias-clients from the database and recompute affected client statistics.
69
67
70
-
## Real-time signal 4
68
+
## Real-time signal 4 (39)
71
69
72
70
Re-resolve all clients and forward destination hostnames. This forces refreshing hostnames as in that the usual "resolve only recently active clients" condition is ignored. The re-resolution adheres to the specified `REFRESH_HOSTNAMES` config option meaning that this option may not try to resolve all hostnames.
73
71
74
-
## Real-time signal 5
72
+
## Real-time signal 5 (40)
75
73
76
74
Re-parse ARP/neighbour-cache now to update the Network table now
77
75
78
-
## Real-time signal 6
76
+
## Real-time signal 6 (41)
79
77
80
78
*reserved* - Signal used internally to terminate the embedded `dnsmasq`. Please do not use this signal to prevent misbehaviour.
81
79
82
-
## Real-time signal 7
80
+
## Real-time signal 7 (42)
83
81
84
82
Scan binary search lookup tables for hash collisions and report if any are found. This is a debugging signal and not meaningful production. Scanning the lookup tables is a time-consuming operation and may stall DNS resolution for a while on low-end devices.
0 commit comments