Debian 10: /tmp/ is empty

I upgraded my home server to Debian 10 (buster) so that I could get the latest Gerbera UPnP server version.

After the update, my Munin monitoring website did not show the room temperatures anymore:

Munin plugin for room temperatures

Using munin-run gave proper results, but the logs said something different:

Error output from usb-wde1_humidity:
 /etc/munin/plugins/usb-wde1_humidity: 124: cannot open /tmp/usb-wde1-last: No such file
Service 'usb-wde1_humidity' exited with status 2/0.

The file in /tmp was there, had the proper rights and contained content.

While checking the version (2.0.49-1) I saw that the buster-backports repository had an update to 2.0.66-1~bpo10+1, so I installed that. Trying munin-run again gave me different results:

$ munin-run usb-wde1_humidity
/etc/munin/plugins/usb-wde1_humidity: 124: /etc/munin/plugins/usb-wde1_humidity: cannot open /tmp/usb-wde1-last: No such file
Log line does not begin with $1
Warning: the execution of 'munin-run' via 'systemd-run' returned an error. This may either be caused by a problem with the plugin to be executed or a failure of the 'systemd-run' wrapper. Details of the latter can be found via 'journalctl'.

Hm. Could it have to do with systemd? Looking for "debian 10" "ls /tmp" directory breaking changes did not yield any results, but debian tmp systemd did.

It turned out that systemd has a service option PrivateTmp=true that mounts an empty directory as /tmp for the service, so that no other program can look into the tmp files of that application. And that means that the application cannot look into the normal /tmp as well :(

In the end I modified my usb-wde1-tools to log into /var/spool/usb-wde1/, and let the munin plugin read from there.

Written by Christian Weiske.

Comments? Please send an e-mail.