見出し画像

電源ONでアプリを自動起動

Raspberry Pi Zero に限りませんが「Raspbian Buster セットアップ」に書いたように、Buster の Overlay File System 対応のお蔭で、電源ONでアプリが起動し、使い終わったら電源OFFするだけの装置を手軽に提供出来ます。

Overlay Enable 時に限ってEthernet 接続の固定IPに不具合があるようです。
バグの類であって、いずれ修正されると思いますが、詳細と対処方法については「RasPi Buster Overlay のネットワーク」をご覧下さい。

SQLite 簡易サーバーは、まだ重要なデータを扱っていませんが、とりあえず稼働させています。

電源ONで動き出して、電源OFFで止めることが出来るように Overlay Enable で使っています。
深夜にはRCLONE で Google Drive にアップしながら動作し続けています。

自動起動は autostart で

以下の方法は最近のRaspbrry Pi OSでは機能しないことがあるようです。
電源ONでアプリを自動起動2」を試してみてください。
追記:2022/06/10日

Raspberry Pi で電源ON(ブート時)にアプリを自動起動させる方法は複数あるようですが、幾つか試した結果 autostart を使っています。

丁寧に説明してくれるWebページが沢山ありますが、Buster の場合の要点をメモします。
Buster より前の Raspbian では少し違うようなのでご注意ください。

$ mkdir -p ~/.config/lxsession/LXDE-pi
$ cp /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi/

1.上で、フォルダーを作って autostart の雛形をコピーする。
2.コピーした ~/.config/lxsession/LXDE-pi/autostart の末尾に追記

GUIアプリは実行用のシェルスクリプトをフルパスで書くのですが、今回はターミナルを立ち上げて、その中で実行するため以下のように追記しました。

lxterminal -e "/home/pi/Git/Python/sqlite_socket/sqlite_socket_S.sh"
シェルスクリプトがGUIの場合は単純に以下のように書きます。
/home/pi/Git/Python/sqlite_socket/sqlite_socket_S.sh

参考までにシェルスクリプト(sqlite_socket_S.sh)の中身は、以下の通りでした。

#!/bin/sh
cd /home/pi/Git/Python/sqlite_socket
python3 SQLite_socket_S_main.py

これで、電源を入れて暫くしてからVNCで接続するとターミナルウィンドウが立ち上がった状態を確認できます。稼働中に(私が想定した)エラーがあるとprint してくれるはずです。

今後が楽しみです・・・

Zero のデバッグは Thonny Python IDE

普段は 3B 以上の RasPi で Spyder3 を使って書いたり修正したりしていますが Zero で Spyder3 は実用的ではありませんでした。

デバッグと言うより、VNC越しにソースを確かめたり、係数を可変したりする時には初めからインストールされていた Thonny Python IDE を使っています。

手軽で便利です。


出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。