fix stale doc references across four files

README.md:
  - folder tree: conf files at root → Configurations/ subfolder
  - folder tree: Failover/ → Fallback/, wrong README name corrected
  - folder tree: add Kernel/ entry (was missing)
  - CONFIGURATION section: note Configurations/ path + sparse checkout

README-User_Script_Plug-in.md:
  - mem_shutdown_active attributed to stability_watchdog → resource_watchdog

unRAID_Essentials/README-Unraid_Essentials.md:
  - webgui_watchdog schedule: "Every 10 min via User Scripts" →
    "Every minute via watchdog_orchestrator → system_watchdog"
  - HOW THE SCRIPTS RELATE: arrow diagram corrected — system_watchdog.sh
    calls storage/webgui/network watchdogs, not the reverse; added
    network_watchdog.sh and stability_watchdog.sh to the flow

Orchestrators/README-Orchestrators.md:
  - continuous daemon example: system_watchdog.sh → fallback.sh
    (system_watchdog is now single-pass, not a daemon)
  - scripts table: add watchdog_orchestrator.sh and monthly_maintenance.sh
    (both were missing)
This commit is contained in:
Gmer4Lfe
2026-05-22 21:41:31 -04:00
parent 8d8a4fd637
commit 8b0ee44b65
4 changed files with 32 additions and 21 deletions
+3 -1
View File
@@ -167,10 +167,12 @@ without `--log`.
| Script | What It Orchestrates | Schedule | | Script | What It Orchestrates | Schedule |
|--------|---------------------|----------| |--------|---------------------|----------|
| `array_start.sh` | All array startup scripts in order | At Startup of Array | | `array_start.sh` | All array startup scripts in order | At Startup of Array |
| `watchdog_orchestrator.sh` | resource → docker → system → stability watchdogs | Every minute |
| `transcode_management.sh` | Cleanup then manager — order critical | Every 3 minutes | | `transcode_management.sh` | Cleanup then manager — order critical | Every 3 minutes |
| `arrs_failed_stalled_recovery.sh` | Failed import + stalled download recovery | Every 6 hours | | `arrs_failed_stalled_recovery.sh` | Failed import + stalled download recovery | Every 6 hours |
| `daily_sync_maintenance.sh` | git pull → sync → media maintenance → restarts | 1am daily | | `daily_sync_maintenance.sh` | git pull → sync → media maintenance → restarts | 1am daily |
| `weekly_sync_maintenance.sh` | Stop → update → clean sync → start → weekly restarts | 2:30am Sunday | | `weekly_sync_maintenance.sh` | Stop → update → clean sync → start → weekly restarts | 2:30am Sunday |
| `monthly_maintenance.sh` | Uptime-triggered heavy tasks — ZFS scrub, SMART tests | Daily check, fires when uptime ≥ 30d |
| `media_management.sh` | Permissions → cleaners → arr cleanup | Via daily_sync (or manual) | | `media_management.sh` | Permissions → cleaners → arr cleanup | Via daily_sync (or manual) |
--- ---
@@ -233,7 +235,7 @@ ARRAY_START_SCRIPTS=(
# Each script is launched with `bash script.sh &` — background process. # Each script is launched with `bash script.sh &` — background process.
# After 1 second: # After 1 second:
# PID still alive → continuous script (running in background) # PID still alive → continuous script (running in background)
# logged as: "system_watchdog.sh — running (PID 12345)" # logged as: "fallback.sh — running (PID 12345)"
# PID dead + exit 0 → one-shot completed successfully # PID dead + exit 0 → one-shot completed successfully
# logged as: "inotify_tuning.sh — completed (one-shot)" # logged as: "inotify_tuning.sh — completed (one-shot)"
# PID dead + exit N → failure # PID dead + exit N → failure
+1 -1
View File
@@ -899,7 +899,7 @@ Background: NO
**What it shows:** **What it shows:**
Strike counts for all monitored containers. Current skip list with running/stopped state. Strike counts for all monitored containers. Current skip list with running/stopped state.
Whether startup grace period is active and how long remains. Whether RAM emergency Whether startup grace period is active and how long remains. Whether RAM emergency
deferral is active (mem_shutdown_active from stability_watchdog). Last cycle timing. deferral is active (mem_shutdown_active from resource_watchdog). Last cycle timing.
--- ---
+14 -7
View File
@@ -476,11 +476,12 @@ Monitoring:
``` ```
Unraid_Scripts/ Unraid_Scripts/
├── master.conf ← All shared configuration — the only file you edit regularly ├── Configurations/ ← All configuration files — the only files you edit regularly
├── host1.conf ← HOST1-specific: share lists, container names, API keys │ ├── master.conf ← Shared: thresholds, toggles, job lists, watchdog settings
├── host2.conf ← HOST2-specific: same structure, different values ├── host1.conf ← HOST1-specific: share lists, container names, API keys
│ └── host2.conf ← HOST2-specific: same structure, different values
├── common.sh ← Shared library — all functions used by every script ├── common.sh ← Shared library — all functions used by every script
├── load_config.sh ← Sources all conf files and common.sh ├── load_config.sh ← Sources Configurations/ and common.sh at startup
├── Orchestrators/ ← Scheduled job runners — what Arbiter executes ├── Orchestrators/ ← Scheduled job runners — what Arbiter executes
│ README: README-Orchestrators.md │ README: README-Orchestrators.md
@@ -488,8 +489,8 @@ Unraid_Scripts/
├── Rsync/ ← Core rsync script — called per share with profile ├── Rsync/ ← Core rsync script — called per share with profile
│ README: README-Rsync_Setup.md │ README: README-Rsync_Setup.md
├── Failover/ ← Mutual automatic failover — continuous background process ├── Fallback/ ← Mutual automatic failover — continuous background process
│ README: README-Failover.md │ README: README-Fallback.md
├── Watchdogs/ ← All watchdog scripts: resource, docker, system, stability ├── Watchdogs/ ← All watchdog scripts: resource, docker, system, stability
│ README: README-Watchdogs.md │ README: README-Watchdogs.md
@@ -512,16 +513,22 @@ Unraid_Scripts/
├── Partnership/ ← Two-server relationship lifecycle: onboard, offboard, transfer ├── Partnership/ ← Two-server relationship lifecycle: onboard, offboard, transfer
│ README: README-Partnership.md │ README: README-Partnership.md
├── Kernel/ ← Kernel module config — loaded at boot by go file
│ README: README-Kernel.md
└── Tools/ ← Situational utilities: repair, export, emergency tools └── Tools/ ← Situational utilities: repair, export, emergency tools
README: README-Tools.md README: README-Tools.md
``` ```
--- ---
## ━━━ CONFIGURATION — THREE FILES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## ━━━ CONFIGURATION — Configurations/ FOLDER, THREE FILES ━━━━━━━━━━━━━━━━━━━
```bash ```bash
# ───────────────────────────────────────────────────────────────────────────── # ─────────────────────────────────────────────────────────────────────────────
# All three conf files live in Configurations/. load_config.sh sources them.
# Sparse checkout ensures each server only receives its own host*.conf.
#
# master.conf — shared across both servers # master.conf — shared across both servers
# Everything that applies equally to both: thresholds, schedules, profile # Everything that applies equally to both: thresholds, schedules, profile
# definitions, watchdog settings, arr cleanup config, DDNS timing, etc. # definitions, watchdog settings, arr cleanup config, DDNS timing, etc.
+14 -12
View File
@@ -110,7 +110,7 @@ Watchdogs/
| Script | Role | When It Runs | | Script | Role | When It Runs |
|--------|------|-------------| |--------|------|-------------|
| `webgui_watchdog.sh` | WebGUI availability — nginx → php-fpm → emhttp | Every 10 min via User Scripts | | `webgui_watchdog.sh` | WebGUI availability — nginx → php-fpm → emhttp | Every minute via watchdog_orchestrator → system_watchdog |
| `inotify_tuning.sh` | Raise inotify kernel limits | At array start — FIRST | | `inotify_tuning.sh` | Raise inotify kernel limits | At array start — FIRST |
| `php_fpm_max_children.sh` | Set PHP-FPM max worker count | At array start | | `php_fpm_max_children.sh` | Set PHP-FPM max worker count | At array start |
| `docker_syslog_filter.sh` | Suppress Docker veth syslog noise | At array start — before containers | | `docker_syslog_filter.sh` | Suppress Docker veth syslog noise | At array start — before containers |
@@ -132,19 +132,21 @@ Array starts
└─ php_fpm_max_children.sh ← before WebGUI is under load └─ php_fpm_max_children.sh ← before WebGUI is under load
Every minute (watchdog_orchestrator.sh in Orchestrators/): Every minute (watchdog_orchestrator.sh in Orchestrators/):
→ Watchdogs/resource_watchdog.sh → Watchdogs/docker_watchdog.sh → Watchdogs/resource_watchdog.sh
→ Watchdogs/System/storage_watchdog.sh → Watchdogs/system_watchdog.sh → Watchdogs/docker_watchdog.sh
→ Watchdogs/system_watchdog.sh (thin orchestrator)
└─ Watchdogs/System/storage_watchdog.sh
└─ Watchdogs/System/webgui_watchdog.sh
WebGUI OK → silent exit
Not responding:
Step 1: restart nginx → recheck
Step 2: restart php-fpm → recheck
Step 3: restart emhttp → recheck
All failed → notify, exit 1
└─ Watchdogs/System/network_watchdog.sh
→ Watchdogs/stability_watchdog.sh
(see Watchdogs/README-Watchdogs.md for full flow) (see Watchdogs/README-Watchdogs.md for full flow)
Every 10 minutes (User Scripts):
└─ webgui_watchdog.sh
WebGUI OK → silent exit
Not responding:
Step 1: restart nginx → recheck
Step 2: restart php-fpm → recheck
Step 3: restart emhttp → recheck
All failed → notify, exit 1
Weekly (weekly_maintenance.sh): Weekly (weekly_maintenance.sh):
└─ clear_logs.sh └─ clear_logs.sh
System logs: clear if > LOG_MIN_SIZE_MB System logs: clear if > LOG_MIN_SIZE_MB