はじめに
最近、業務においてラズパイで動くGUIアプリケーションを開発していたりなんかしています。
そんな流れで、OS起動時にアプリを自動起動する方法を探していました。
いわゆるWindowsのスタートアップにあたるものです。GUIのプログラムを起動時に実行するための設定方法を探していました。
結局のところ、ラズパイOSの最新であるBookwormでは、使用するディスプレイサーバーを設定で変更することができ、それぞれに設定方法が異なるのだとわかりました。
自分の備忘も兼ねて、まとめました。
動作環境
Raspberry Pi 5
ディスプレイサーバーを切り替える
ラズパイOSの最新である Bookworm
になり、ディスプレイサーバーも旧来のX11環境(X Window System)から Wayland
が標準となりました。
Bookwormがリリースされた当初は Wayfire
(Waylandコンポジタ実装の一つ)を使っていたようですが、
最新では Labwc
が採用されて新規にOSイメージを作成するとこちらが標準になっているようです。
どのディスプレイサーバーを使用するかは、raspi-config
で変更することが可能です。
- コンソールを開き、
sudo raspi-config
コマンドを実行する -
Advanced Options
を選択 -
Wayland
を選択 -
X11
Wayfire
Labwc
から使用したいものを選択
X11 (Openbox with X11) でautostart設定
autostartファイルの雛形を、ホームディレクトリのコンフィグにコピーし、~/.config/lxsession/LXDE-pi/autostart
ファイルに実行したいコマンド名を追記する。
$ mkdir -p ~/.config/lxsession/LXDE-pi
$ cp /etc/xdg/lxsession/LXDE-pi/autostart ~/.config/lxsession/LXDE-pi/
$ echo 'bash {スクリプトのパス}/xxx.sh' >> ~/.config/lxsession/LXDE-pi/autostart
Wayfire (Wayfire with Wayland) でautostart設定
最下部または既存のautostartセクションに追記する。
[autostart]
panel = wfrespawn wf-panel-pi
background = wfrespawn pcmanfm --desktop --profile LXDE-pi
xdg-autostart = lxsession-xdg-autostart
{処理名} = bash {スクリプトのパス}/xxx.sh
Labwc (Labwc with Wayland) でautostart設定
autostart
ファイルを作成し、実行したいコマンドを追記する。
bash {スクリプトのパス}/xxx.sh &
おわりに
以上、ユーザー固有の自動起動設定についてのまとめでした。
これを書きながら、Google検索していると、普段から当たり前のようにRaspberryPiやLinux環境をさわっていたり、ディスプレイサーバーを切り替えて遊んでいる方たちにはごくごく知られた事なのかなと思ったり、わざわざまとめるまでもないのかと思ったりもしました。が、自分自身が忘れた頃にまた同じ検索キーワードでGoogle検索をして、ほしい情報にたどり着くまでに時間を消費するのも勿体無いので、まとめておくことにしました。
システム共通の自動起動設定がまた別にあるのねという事に気付いたりしましたが、それはまた別の機会に。
参考
- Raspberry Piでプログラムを自動起動する5種類の方法を比較・解説 - Qiita
- Raspberry Pi OS bookwormでアプリを自動起動させる方法 - ラズパイダ
- Autostart with labwc - Raspberry Pi Forum
- Waylandのコンポジター Wayfire→Labwc - Qiita