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:
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.