====== Problem with systemd-tmpfiles-setup service ====== In a **Debian 12 Bookworm** installation I faced some problems at bootstrap. Some services does not start basically because the **%%/run%%** hierarchy was not properly initialized with the required subdirectories. E.g. one OpenVPN service does not start beacuse the **/run/openvpn/** directory does not exists: ovpn-office[2853]: Options error: --writepid fails with '/run/openvpn/office.pid': No such file or directory (errno=2) An enlightening error message is displayed by **dmesg**: systemd[1]: sysinit.target: Found ordering cycle on systemd-tmpfiles-setup.service/start systemd[1]: sysinit.target: Job systemd-tmpfiles-setup.service/start deleted to break ordering cycle starting with sysinit.target/start I.e. the service **sysinit.target** cannot start due a service ordering problem, so Systemd decided to delete the **systemd-tmpfiles-setup.service**. The problem could be with other Systemd unit too, e.g. the **avahi-daemon.socket**: systemd[1]: avahi-daemon.socket: Found dependency on systemd-tmpfiles-setup.service/start systemd[1]: avahi-daemon.socket: Job systemd-tmpfiles-setup.service/start deleted to break ordering cycle starting with avahi-daemon.socket/start Others problematic Systemd units can be: **sockets.target**, **basic.target**. ===== Analyzing Systemd ===== systemd-analyze verify default.target The command highlights an **ordering cycle** problem, which causes the deleting of a service: sockets.target: Found ordering cycle on avahi-daemon.socket/start sockets.target: Found dependency on sysinit.target/start ... sockets.target: Job avahi-daemon.socket/start deleted to break ordering cycle starting with sockets.target/start ... Notice that the ordering (and the deleting choice) is not deterministic: on each execution the path of ordering (and deleting) may change. The problem was introduced by this custom Postfix/Courier setup: **[[postfix_courier_authdaemon_debian_12]]**. In fact disabling the Systemd ''var-spool-postfix-var-run-courier-authdaemon.mount'' unit, solves the issues listed by systemd-analyze. In this specific case the problem was completely solved changing the dependencies of the **[[https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html|mount unit]]** created to have the Courier socket inside the Postfix chroot. Instead of the strong ''Requires='' and ''After='' dependencies upon the courier-authdaemon.service, declaring the weaker ''Wants='' dependency sovled to cycle problem.