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:
@@ -167,10 +167,12 @@ without `--log`.
|
||||
| Script | What It Orchestrates | Schedule |
|
||||
|--------|---------------------|----------|
|
||||
| `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 |
|
||||
| `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 |
|
||||
| `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) |
|
||||
|
||||
---
|
||||
@@ -233,7 +235,7 @@ ARRAY_START_SCRIPTS=(
|
||||
# Each script is launched with `bash script.sh &` — background process.
|
||||
# After 1 second:
|
||||
# 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
|
||||
# logged as: "inotify_tuning.sh — completed (one-shot)"
|
||||
# PID dead + exit N → failure
|
||||
|
||||
@@ -899,7 +899,7 @@ Background: NO
|
||||
**What it shows:**
|
||||
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
|
||||
deferral is active (mem_shutdown_active from stability_watchdog). Last cycle timing.
|
||||
deferral is active (mem_shutdown_active from resource_watchdog). Last cycle timing.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -476,11 +476,12 @@ Monitoring:
|
||||
```
|
||||
Unraid_Scripts/
|
||||
│
|
||||
├── master.conf ← All shared configuration — the only file you edit regularly
|
||||
├── host1.conf ← HOST1-specific: share lists, container names, API keys
|
||||
├── host2.conf ← HOST2-specific: same structure, different values
|
||||
├── Configurations/ ← All configuration files — the only files you edit regularly
|
||||
│ ├── master.conf ← Shared: thresholds, toggles, job lists, watchdog settings
|
||||
│ ├── 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
|
||||
├── 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
|
||||
│ README: README-Orchestrators.md
|
||||
@@ -488,8 +489,8 @@ Unraid_Scripts/
|
||||
├── Rsync/ ← Core rsync script — called per share with profile
|
||||
│ README: README-Rsync_Setup.md
|
||||
│
|
||||
├── Failover/ ← Mutual automatic failover — continuous background process
|
||||
│ README: README-Failover.md
|
||||
├── Fallback/ ← Mutual automatic failover — continuous background process
|
||||
│ README: README-Fallback.md
|
||||
│
|
||||
├── Watchdogs/ ← All watchdog scripts: resource, docker, system, stability
|
||||
│ README: README-Watchdogs.md
|
||||
@@ -512,16 +513,22 @@ Unraid_Scripts/
|
||||
├── Partnership/ ← Two-server relationship lifecycle: onboard, offboard, transfer
|
||||
│ 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
|
||||
README: README-Tools.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ━━━ CONFIGURATION — THREE FILES ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
## ━━━ CONFIGURATION — Configurations/ FOLDER, THREE FILES ━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
```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
|
||||
# Everything that applies equally to both: thresholds, schedules, profile
|
||||
# definitions, watchdog settings, arr cleanup config, DDNS timing, etc.
|
||||
|
||||
@@ -110,7 +110,7 @@ Watchdogs/
|
||||
|
||||
| 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 |
|
||||
| `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 |
|
||||
@@ -132,18 +132,20 @@ Array starts
|
||||
└─ php_fpm_max_children.sh ← before WebGUI is under load
|
||||
|
||||
Every minute (watchdog_orchestrator.sh in Orchestrators/):
|
||||
→ Watchdogs/resource_watchdog.sh → Watchdogs/docker_watchdog.sh
|
||||
→ Watchdogs/System/storage_watchdog.sh → Watchdogs/system_watchdog.sh
|
||||
(see Watchdogs/README-Watchdogs.md for full flow)
|
||||
|
||||
Every 10 minutes (User Scripts):
|
||||
└─ webgui_watchdog.sh
|
||||
→ Watchdogs/resource_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)
|
||||
|
||||
Weekly (weekly_maintenance.sh):
|
||||
└─ clear_logs.sh
|
||||
|
||||
Reference in New Issue
Block a user