電源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 を使っています。
手軽で便利です。