MQTTでIoT通信(3)受け取ったのデータのファイル保存 プログラムをサービスとして起動する
2026/1/3変更 当初ファイルをSDの寿命に考慮してtmpfsで作った/tmpに保存していたが、これがそれからの地獄のはじまりだった。munin-nodeが基本nobody権限で動作するのがこれの/tmpにあるファイルが見えない。tmpfs上に作ったファイルへのアクセスを禁じられている。まあ、セキュリティー的観点から正しい判断だろう。 とはいえSD上で頻繁に書き換えたくないのでメモリ上で保存したい。でGeminiに聞いたら/dev/shm使えば良いじゃんって返ってきた。/dev/shm ? ってなったので調べてみると いろいろなところで、以下のような内容を書かれている。「POSITシステムでのアプリケーション間の効率的なデータの受け渡しに使われる。」バッチリじゃん。ただ、使い方に関しては、世間全般として賛否両論なところがあるようだ。 とりあえず、 sudo mkdir -p /dev/shm/mqtt sudo chmod 777 /dev/shm/mqtt でディレクトリを作ってここでデータのやりとりをすることにする。 ------------------- 2026/1/3 さらに追記 x86用のRaspberry OSをインストールした仮想マシン上で当初プログラムしていたら、仮想マシン上のOSがDebian GNU/Linux 11 (bullseye) で実際のラズパイで動いているのでRaspbian GNU/Linux 13 (trixie) でバージョンそろってなかった。仮想マシン作った時期そんなに前では無いのがが古いバージョンだった。気付かんかった。結果logger.pyが動かず。サービスとしては動いているように見えるのに。。。。。。。 結果。仮想マシン python3-paho-mqtt 1.5.1-1 実ラズパイ python3-paho-mqtt 2.1.0-1 でpython3-paho-mqttが1系から2系になった時に結構かわっているらしいの...