From 4ac1ec33c96a58ddc5150ff26b50c5edcbd9ace6 Mon Sep 17 00:00:00 2001 From: MRegra Date: Sun, 11 Oct 2026 22:25:07 +0200 Subject: [PATCH] docs(runbook): document known pre-reorg systemd ExecStart issue Record the observed 203/EXEC failure where units created before the fedora-maintenance/system-health subdirectory move still point at the old flat script paths, with the fix via the README symlink setup. Co-Authored-By: Claude Sonnet 5 Fleet-Item: F-1159 Co-Authored-By: Claude --- CHANGELOG.md | 6 ++++++ README.md | 4 +++- docs/runbook.md | 22 ++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b756244..88f3e49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,12 @@ Format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). home self-hosted runners instead of GitHub-hosted runners. (#5) - `docs/runbook.md`: service map, health checks and failure modes (including F-0024). +- `docs/runbook.md`: "Known issues" entry documenting that systemd units + created before the scripts moved into `fedora-maintenance/`/`system-health/` + subdirectories may still have `ExecStart=` pointing at the old flat repo + paths (`status=203/EXEC`), with the fix (point `ExecStart=` at the + `/usr/local/bin`/`~/.local/bin` symlink, re-create the symlink if missing, + `daemon-reload`). ### Changed diff --git a/README.md b/README.md index 1069fcb..708b3b1 100644 --- a/README.md +++ b/README.md @@ -84,4 +84,6 @@ bash scripts/test-smoke-selftest.sh ## Operating the scripts See [`docs/runbook.md`](docs/runbook.md) for the service map, health checks -and known failure modes (including the `203/EXEC` systemd failure, F-0024). +and known failure modes (including the `203/EXEC` systemd failure, F-0024, +and a known issue with units installed before the `fedora-maintenance/` / +`system-health/` reorg). diff --git a/docs/runbook.md b/docs/runbook.md index 2d12798..fdc88d6 100644 --- a/docs/runbook.md +++ b/docs/runbook.md @@ -41,6 +41,28 @@ script on the workstation. | CI `shellcheck`/`actionlint`/`gitleaks` job goes red | Check the failing job in the Actions run | Fix the reported finding (shellcheck warning, workflow lint error, or committed secret — rotate the secret immediately if `gitleaks` finds a real one, then scrub history with the owner's help). | `.github/workflows/ci.yml` | | CI jobs don't start or stay queued | Check runner status: the jobs target `runs-on: [self-hosted, home]` (server-dev1/server-dev2) | Confirm the home runners are online (owner-operated hardware, not in this repo's control). | `docs/adr/0001-ci-on-home-self-hosted-runners.md`, F-0704 | +## Known issues + +- **Locally installed units may still point at pre-reorg script paths.** The + scripts used to live flat at the repo root (`fedora-workstation-scripts/fedora-maintenance.sh`, + `.../system-health-check.sh`) and were moved into the `fedora-maintenance/` + and `system-health/` subdirectories. Any systemd unit created before that + move (or hand-written against an old README) still has + `ExecStart=.../fedora-workstation-scripts/fedora-maintenance.sh` (or the + `system-health-check.sh` equivalent) and fails with `status=203/EXEC` — this + was observed on the owner's workstation (both the `fedora-maintenance` and + `system-health` user units) as of 2026-09-13. The current README/unit + examples never hit this because they route through a stable + `/usr/local/bin/` (or `~/.local/bin/`) symlink instead of a + direct repo path (see `fedora-maintenance/README.md` and + `system-health/README.md` "Setup (symlinks)" + "Automation"). Fix: point + each unit's `ExecStart=` at the symlink, not the repo path, re-create the + symlink if missing (`## Quick setup (symlinks)` in the root README), then + `systemctl --user daemon-reload` (or `sudo systemctl daemon-reload` for + system units). CI now guards against reintroducing this (`scripts/test-smoke.sh`, + F-0024), but it cannot fix units already installed on a workstation outside + this repo. + ## Data No database. `bug-bounty-agent/scope.yaml` and `bug-bounty-agent/memory/*.json`