mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-14 16:30:47 +01:00
The periodic setup wrote /usr/local/bin scripts with sed > target, truncating the file in place. bash reads scripts lazily, so the running hosts-file-monitor could execute a half-new file. New lib/atomic_install.sh renders into a temp file beside the target, syntax-checks it, sets mode/owner and renames it over the target (new inode). A bad template fails closed and leaves the live file untouched. Applied to the maintenance script, hosts monitor, browser wrapper and auto-update script; the hosts monitor service is restarted if running. Test: test_services_atomic_install.sh (inode changes, old inode keeps old bytes, syntax error and missing template leave target untouched). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WzxdWYWDKuhbBAoNETfoB9 |
||
|---|---|---|
| .. | ||
| tests | ||
| atomic_install.sh | ||
| periodic_browser.sh | ||
| services_apps.sh | ||
| services_browser.sh | ||
| services_common.sh | ||
| services_hosts_fix.sh | ||
| services_hosts.sh | ||
| services_report.sh | ||
| services_units.sh | ||
| services_wrappers.sh | ||