I wrote in 038 that `nohup … &` inside a tool call does not survive, on the evidence of an empty logfile and no matching process. Both were artefacts, the diagnosis was wrong, and acting on it cost considerably more than the dead job I thought I was recovering from. The log was empty because Python block-buffers stdout to a file. No TTY means a ~8 KB buffer, and PYTHONUNBUFFERED=1 was set in the systemd unit but not on the nohup line, so forty minutes of genuine work produced a zero-byte log. The process appeared missing because rtk silently dropped the grep; `rtk proxy ps` showed it immediately, reparented to PID 1553 — the user systemd manager — and well into its render. RTK.md says to fall back to `rtk proxy` whenever output looks suspiciously empty, and I skipped that on the one check the entire conclusion rested on. So I started the same 63-minute render a second time. For roughly forty minutes two processes wrote the same output paths, racing on Cosmic26_v1_streaming.flac and master_report.json. Nothing warned me; it surfaced only because two ffmpeg processes turned up at different pipeline stages, which is luck rather than a designed tell. Killed the unsupervised duplicate by PID, removed its 102 MB partial FLAC so cosmic-finish could not split a truncated file, and let the journaled unit carry on. The unit has since reported attempt 1 cleanly: pre-gain +11.6 dB giving I=-15.94, TP=-1.00, LRA 8.30 down from 10.60 — dynamics substantially intact. Two rules earned the hard way, both recorded in reference_durable_background_jobs alongside the retraction. An empty logfile is not evidence of no progress: use `python -u` or PYTHONUNBUFFERED on anything whose log you intend to read. And before starting a replacement for a job you believe is gone, PROVE it is gone — via `rtk proxy ps` or the unit's own cgroup.procs — because a duplicate writing the same paths is a corruption risk, not merely wasted CPU. feedback_check_the_instrument_first and feedback_absence_needs_proof both applied here and I honoured neither. What the episode does not undermine is the house rule, which stands on its own evidence from the same night: systemd --user units outlive the session. Every harness background waiter and monitor I had armed was killed at a between-turn teardown, while all three cosmic-* units kept running untouched. That is the reason to use them. The nohup story was never the reason.
| Name |
Last commit
|
Last update |
|---|---|---|
| .gitea/workflows | Loading commit data... | |
| armada | Loading commit data... | |
| blocks | Loading commit data... | |
| blog | Loading commit data... | |
| config/wireplumber | Loading commit data... | |
| copycat | Loading commit data... | |
| docs | Loading commit data... | |
| gifts | Loading commit data... | |
| lib-parvagues | Loading commit data... | |
| live | Loading commit data... | |
| output | Loading commit data... | |
| releases | Loading commit data... | |
| sandbox | Loading commit data... | |
| study | Loading commit data... | |
| test | Loading commit data... | |
| tools | Loading commit data... | |
| utils | Loading commit data... | |
| visuals/slop | Loading commit data... | |
| viz | Loading commit data... | |
| .gitignore | Loading commit data... | |
| BootTidal.hs | Loading commit data... | |
| BootTidal.hs.broken | Loading commit data... | |
| BootTidal.visuals.broken.hs | Loading commit data... | |
| CLAUDE.md | Loading commit data... | |
| EVENING.md | Loading commit data... | |
| FOH_MASTER.md | Loading commit data... | |
| LAST_THIRD.md | Loading commit data... | |
| LICENSE | Loading commit data... | |
| MORNING.md | Loading commit data... | |
| PatchBay_MultiChannel.xml | Loading commit data... | |
| PatchBay_Perf.xml | Loading commit data... | |
| PatchBay_Perf5.1.xml | Loading commit data... | |
| README.md | Loading commit data... | |
| RUNBOOK.md | Loading commit data... | |
| SHOPPING_LIST.md | Loading commit data... | |
| TASKS_DUMP.md | Loading commit data... | |
| backlog.md | Loading commit data... | |
| bullet_train.tidal | Loading commit data... | |
| collide.sh | Loading commit data... | |
| debug.tidal | Loading commit data... | |
| didacticpatternvisualizer.pde | Loading commit data... | |
| gig-up.sh | Loading commit data... | |
| gpu-mode.sh | Loading commit data... | |
| hello.sc | Loading commit data... | |
| init_midi.sh | Loading commit data... | |
| intro.md | Loading commit data... | |
| library.txt | Loading commit data... | |
| link_jack.sh | Loading commit data... | |
| link_samples.sh | Loading commit data... | |
| link_samples_all.txt | Loading commit data... | |
| main_fairbanks.scd | Loading commit data... | |
| notes.md | Loading commit data... | |
| parvagues-sc.service | Loading commit data... | |
| perf-audio.sudoers | Loading commit data... | |
| perf-tray.py | Loading commit data... | |
| perf-tray.service | Loading commit data... | |
| perf.sh | Loading commit data... | |
| realtime.tidal | Loading commit data... | |
| sample_watch.scd | Loading commit data... | |
| samples.txt | Loading commit data... | |
| setlist_opal2026.txt | Loading commit data... | |
| start_and_midi.scd | Loading commit data... | |
| test.tidal | Loading commit data... |