With a closer look I ended up running this loop while looking at systemd debug logs:
sudo snap remove --purge snapd && sudo systemctl daemon-reload && sudo systemctl restart snapd && snap version && sudo apt update && echo "ALOHA: installing snapd" | systemd-cat && sudo snap install snapd && echo "ALOHA: done installing snapd" | systemd-cat This causes the following log file to show up: mar 13 13:02:52 ciri systemd[1]: Looking for unit files in (higher priority first): mar 13 13:02:52 ciri systemd[1]: /etc/systemd/system.control mar 13 13:02:52 ciri systemd[1]: /run/systemd/system.control mar 13 13:02:52 ciri systemd[1]: /run/systemd/transient mar 13 13:02:52 ciri systemd[1]: /run/systemd/generator.early mar 13 13:02:52 ciri systemd[1]: /etc/systemd/system mar 13 13:02:52 ciri systemd[1]: /etc/systemd/system.attached mar 13 13:02:52 ciri systemd[1]: /run/systemd/system mar 13 13:02:52 ciri systemd[1]: /run/systemd/system.attached mar 13 13:02:52 ciri systemd[1]: /run/systemd/generator mar 13 13:02:52 ciri systemd[1]: /usr/local/lib/systemd/system mar 13 13:02:52 ciri systemd[1]: /usr/lib/systemd/system mar 13 13:02:52 ciri systemd[1]: /run/systemd/generator.late mar 13 13:02:52 ciri systemd[1]: Modification times have changed, need to update cache. The message at the bottom of the log comes from systemd's src/basic/unit-file.c bool lookup_paths_timestamp_hash_same(const LookupPaths *lp, uint64_t timestamp_hash, uint64_t *ret_new) { struct siphash state; siphash24_init(&state, HASH_KEY.bytes); STRV_FOREACH(dir, lp->search_path) { struct stat st; if (lookup_paths_mtime_exclude(lp, *dir)) continue; /* Determine the latest lookup path modification time */ if (stat(*dir, &st) < 0) { if (errno == ENOENT) continue; log_debug_errno(errno, "Failed to stat %s, ignoring: %m", *dir); continue; } siphash24_compress_usec_t(timespec_load(&st.st_mtim), &state); } uint64_t updated = siphash24_finalize(&state); if (ret_new) *ret_new = updated; if (updated != timestamp_hash) log_debug("Modification times have changed, need to update cache."); return updated == timestamp_hash; } Modification of mtime of any of the directories above is sufficient to cause this to differ. I've patched systemd to tell us why systemd thinks it needs to be reloaded (additional printfs) to get an idea what might be the trigger that is left stale. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2055239 Title: Warning: The unit file, source configuration file or drop-ins of {apt- news,esm-cache}.service changed on disk. Run 'systemctl daemon-reload' to reload units. To manage notifications about this bug go to: https://bugs.launchpad.net/snapd/+bug/2055239/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs