ゆるエンジニアはいろいろ遊びたい

FAエンジニアが週末にいろいろ遊ぶブログです

Raspberry Pi5でOLEDディスプレイを自動起動する

ラズパイ5でOLEDディスプレイにCPU情報を表示することができたので、これをラズパイ起動時に自動的に実行し、常駐したいと思います。
slowtech.hateblo.jp
pythonコードは過去記事のままで、systemdに.serviceファイルを追加します。

sudo nano /etc/systemd/system/cpu_oled.service
[Unit]
Description=Run wakeup.py at startup
Before=wakeup_app.service
[Service]
Type=simple
User=ユーザー名
WorkingDirectory=/home/ユーザー名/Documents/python_app
ExecStart=/home/ユーザー名/Documents/python_app/.venv/bin/python cpu_oled.py
TimeoutStopSec=5
KillSignal=SIGINT
Restart=No
[Install]
WantedBy=multi-user.target

WorkingDirectoryは作業フォルダを指定します。
ExecStartは仮想環境と実行ファイル名を指定します。
Before=***.serviceで他のサービスの前に実行するように設定できます。After=***.serviceなら他のサービスの後に実行します。
TimeoutStopSec=5は停止処理に猶予を持たせるため設定します。
KillSignal=SIGINTは、プログラムのfinallyも走らせるために設定します。SIGTERMだと強制終了するのか、シャットダウン時に画面が消える処理をすっ飛ばす症状が発生し画面が付きっぱなしになったのですが、SIGINTだとその処理もちゃんと実行されました。
systemdを書き換えたら、再読み込みして実行します。

sudo systemctl daemon-reload
sudo systemctl start cpu_oled.service

もしすでに動いているサービスの場合は

sudo systemctl restart cpu_oled.service

これでCPU情報が常に確認できるようになりました。

ダイソーのアクリルスタンドを加工して、ディスプレイスタンドも作ってみました。
なかなかいい感じです。アクリルの加工もなかなかうまくなってきたので、いつか曲げとかもしてみたいですね。