Merge branch 'master' into remove/openvpn

This commit is contained in:
Dominik
2026-07-26 13:34:49 +02:00
committed by GitHub
6 changed files with 66 additions and 42 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
cache: pip
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e #v6.4.0
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 #v7.0.0
with:
node-version: "${{ env.NODE }}"
cache: npm
+1 -1
View File
@@ -16,7 +16,7 @@ jobs:
pull-requests: write
steps:
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 #v10.3.0
- uses: actions/stale@1e223db275d687790206a7acac4d1a11bd6fe629 #v10.4.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# Do not automatically mark PR/issue as stale
+34 -10
View File
@@ -1,6 +1,6 @@
You can influence FTL by sending signals to the process. There are various signals supported to trigger specific actions, described below.
# Reload everything using `SIGHUP`
## Reload everything using `SIGHUP`
When FTL receives a `SIGHUP`, it clears the entire DNS cache, and then
@@ -29,7 +29,7 @@ When FTL receives a `SIGHUP`, it clears the entire DNS cache, and then
- The blocking cache (storing if a domain has already been analyzed and what the result was) is cleared.
- If `DEBUG_CAPS` is enabled, the current set of available capabilities is logged.
# Real-time (RT) signals
## Real-time (RT) signals
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.
@@ -50,7 +50,7 @@ For the signals described below, we recommend using the exact signal number desc
sudo pkill -SIG35 pihole-FTL
```
## Real-time signal 0 (35)
### Real-time signal 0 (35)
This signal does:
@@ -64,30 +64,54 @@ The most important difference to `SIGHUP` is that the DNS cache itself is **not*
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.
## Real-time signal 1 (36)
### Real-time signal 1 (36)
*Reserved* - Currently ignored
## Real-time signal 2 (37)
### Real-time signal 2 (37)
*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.
## Real-time signal 3 (38)
### Real-time signal 3 (38)
Reimport alias-clients from the database and recompute affected client statistics.
## Real-time signal 4 (39)
### Real-time signal 4 (39)
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.
## Real-time signal 5 (40)
### Real-time signal 5 (40)
Re-parse ARP/neighbour-cache now to update the Network table now
## Real-time signal 6 (41)
### Real-time signal 6 (41)
*reserved* - Signal used internally to terminate the embedded `dnsmasq`. Please do not use this signal to prevent misbehaviour.
## Real-time signal 7 (42)
### Real-time signal 7 (42)
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.
## `dnsmasq` signals
`pihole-FTL` passes the following signals through to its embedded `dnsmasq` thread, where they behave as documented in [`man dnsmasq`](https://dnsmasq.org/docs/dnsmasq-man.html).
### `SIGHUP`
`dnsmasq`'s behavior with `SIGHUP` is already included in the [`SIGHUP` section above](#reload-everything-using-sighup).
### `SIGUSR1`
`SIGUSR1` causes `dnsmasq` to write its cache usage statistics to the log and dump the current cache content (names and addresses). The cache dump output is described in detail on the [cache dump page](cache_dump.md).
```bash
sudo killall -USR1 pihole-FTL
```
### `SIGUSR2`
When logging directly to a file (configured via [`files.log.dnsmasq`](configfile.md#dnsmasq), default `/var/log/pihole/pihole.log`), `SIGUSR2` causes `pihole-FTL` to close and reopen the log file. This is commonly used for [logrotate](https://github.com/pi-hole/pi-hole/blob/master/advanced/Templates/logrotate).
```bash
sudo killall -USR2 pihole-FTL
```
+28 -28
View File
@@ -10,7 +10,7 @@
"license": "CC-BY-SA-4.0",
"devDependencies": {
"linkinator": "^7.6.1",
"markdownlint-cli2": "0.23.0"
"markdownlint-cli2": "0.23.1"
}
},
"node_modules/@nodelib/fs.scandir": {
@@ -126,9 +126,9 @@
}
},
"node_modules/brace-expansion": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz",
"integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==",
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz",
"integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -434,9 +434,9 @@
}
},
"node_modules/globby": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz",
"integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==",
"version": "16.2.1",
"resolved": "https://registry.npmjs.org/globby/-/globby-16.2.1.tgz",
"integrity": "sha512-JmsqJalahxxgW8V2ecSQ2G7UjPlI9cpKdrkG9KoNiXhd/YslXOTEB0cViENWUznuovIuNT+FkMbraDGjr4FCUg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -488,9 +488,9 @@
}
},
"node_modules/ignore": {
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
"version": "7.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz",
"integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -592,9 +592,9 @@
}
},
"node_modules/js-yaml": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.0.tgz",
"integrity": "sha512-YeLUMlvR4Ou1B119LIaM0r65JvbOBooJDc9yEu0dClb/uSC5P4FrLU8OCCz/HXWvtPoIrR0dRzABTjo1sTN9Bw==",
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.2.1.tgz",
"integrity": "sha512-zfLtNfQqxVqq3uaTqSkh4x4hZw3KHobGUA0fJUj4wawW8bsQLTVqpHdXSIzidh7o+4lEW36tANuAGdaFx6Zgnw==",
"dev": true,
"funding": [
{
@@ -704,9 +704,9 @@
}
},
"node_modules/markdown-it": {
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.2.0.tgz",
"integrity": "sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==",
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz",
"integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==",
"dev": true,
"funding": [
{
@@ -721,8 +721,8 @@
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1",
"entities": "^4.4.0",
"linkify-it": "^5.0.1",
"entities": "^4.5.0",
"linkify-it": "^5.0.2",
"mdurl": "^2.0.0",
"punycode.js": "^2.3.1",
"uc.micro": "^2.1.0"
@@ -732,9 +732,9 @@
}
},
"node_modules/markdownlint": {
"version": "0.41.0",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.41.0.tgz",
"integrity": "sha512-xMUI3ChBuRuxuLF4ENvCZyS8z/+Jly1coUcZwErKLIB3sDj7ojpaTBa1e9YVPhSN4jGEIjYGQCldbTJS/hqS+A==",
"version": "0.41.1",
"resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.41.1.tgz",
"integrity": "sha512-qHKeU2E1bdyNAT077go2FVTNXvYcktN5IHtF6XyeD1l0PClxzSp2tUApAV14ORI8DGX4H9bNKZEzelZp4qn8IA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -756,18 +756,18 @@
}
},
"node_modules/markdownlint-cli2": {
"version": "0.23.0",
"resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.23.0.tgz",
"integrity": "sha512-1nmgQmU/ZTMRVwYCDs7i1HI3zfBISnT2NNRv+9V01oOLZbAtqL+a7tldpPhBWBVBten3FqhMCGV6EUh9McqutQ==",
"version": "0.23.1",
"resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.23.1.tgz",
"integrity": "sha512-20JPI5W+HpV1OA+pUM712wgvL4GzYNUvbmhLU8KlEYJ1kCDx4soZ4/Xqd+WkLrPTOKMAn8SfO3zYFrK8GLlwQg==",
"dev": true,
"license": "MIT",
"dependencies": {
"globby": "16.2.0",
"js-yaml": "5.2.0",
"globby": "16.2.1",
"js-yaml": "5.2.1",
"jsonc-parser": "3.3.1",
"jsonpointer": "5.0.1",
"markdown-it": "14.2.0",
"markdownlint": "0.41.0",
"markdown-it": "14.3.0",
"markdownlint": "0.41.1",
"markdownlint-cli2-formatter-default": "0.0.6",
"micromatch": "4.0.8",
"smol-toml": "1.7.0"
+1 -1
View File
@@ -26,6 +26,6 @@
},
"devDependencies": {
"linkinator": "^7.6.1",
"markdownlint-cli2": "0.23.0"
"markdownlint-cli2": "0.23.1"
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
mkdocs==1.6.1
mkdocs-git-revision-date-localized-plugin==1.5.3
mkdocs-material==9.7.6
mkdocs-material==9.7.7
mkdocs-redirects==1.2.3
markdown-include==0.8.1