systemd version the issue has been seen with
259.6
Used distribution
Fedora 44
Linux kernel version used
6.19.14-300.fc44.x86_64
CPU architectures issue was seen on
x86_64
Component
systemd-tmpfiles
Expected behaviour you didn't see
systemd-tmpfiles regularily removes my X11 unix socket /tmp/.X11-unix/X0 because I run xwayland-satellite in a restricted bwrap environment in a different network namespace.
Running with debug logs, I'd expect to see
Jun 27 19:43:01 xxx systemd-tmpfiles[174148]: Skipping "/tmp/.X11-unix/X0": live socket.
Unexpected behaviour you saw
But instead only get timestamp considered:
Jun 27 19:43:12 xxx systemd-tmpfiles[174312]: File "/tmp/.X11-unix/X0": modify time Sat 2026-06-27 19:43:08.154012 JST is too new.
Steps to reproduce the problem
It's easy to reproduce running a dummy program listening there in bwrap, e.g.
bwrap --unshare-net --dev-bind / / socat unix-listen:/tmp/.X11-unix/X2 stdio:
without --unshare-net the socket is listed in /proc/net/unix, but as it is above it's not.
Additional program output to the terminal or log subsystem illustrating the issue
Inspecting with strace I understand that it's because systemd-tmpfiles checks for liveliness through /proc/net/unix, but running in a separate network namespace means the socket is not listed there: is there any other way to check efficiently? (e.g. lsof does pick it up but it's not exactly great to parse all open files..)
systemd version the issue has been seen with
259.6
Used distribution
Fedora 44
Linux kernel version used
6.19.14-300.fc44.x86_64
CPU architectures issue was seen on
x86_64
Component
systemd-tmpfiles
Expected behaviour you didn't see
systemd-tmpfiles regularily removes my X11 unix socket /tmp/.X11-unix/X0 because I run xwayland-satellite in a restricted bwrap environment in a different network namespace.
Running with debug logs, I'd expect to see
Unexpected behaviour you saw
But instead only get timestamp considered:
Steps to reproduce the problem
It's easy to reproduce running a dummy program listening there in bwrap, e.g.
without
--unshare-netthe socket is listed in /proc/net/unix, but as it is above it's not.Additional program output to the terminal or log subsystem illustrating the issue
Inspecting with strace I understand that it's because systemd-tmpfiles checks for liveliness through /proc/net/unix, but running in a separate network namespace means the socket is not listed there: is there any other way to check efficiently? (e.g. lsof does pick it up but it's not exactly great to parse all open files..)