`MakeDirectory=yes` on a `PathChanged=` directive whose target is a file (not a directory) causes systemd to create the watched path as an empty directory on unit start. The container's self-updater then crashes with EISDIR every time it tries to writeFile() the trigger, and the host script never runs. The parent `/opt/dashcaddy/updates/` is already created by the installer/Docker volume, so the flag is redundant and only here as a footgun. Drop it. Reproducer: enable the unit on a fresh system, watch `/opt/dashcaddy/updates/trigger.json` get materialized as a directory within milliseconds of `systemctl start dashcaddy-updater.path`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
9 lines
148 B
SYSTEMD
9 lines
148 B
SYSTEMD
[Unit]
|
|
Description=Watch for DashCaddy update trigger
|
|
|
|
[Path]
|
|
PathChanged=/opt/dashcaddy/updates/trigger.json
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|