LoginSignup
22
28

More than 3 years have passed since last update.

Raspberry Piで、autostartが使えなくなったので、Systemdを使ってchromium-browserを自動起動した。

Last updated at Posted at 2019-03-15

概要

Raspberry Piを使って、ブラウザが立ち上がるキオスク端末を制作してます。
トライ・アンド・エラーを繰り返しながら実験機が完成したので、改めてOSをインストールした直後からの綺麗なSDカードを制作しようと思ったのですが、autostartファイルが無くなっていて、実験機と同じ構成にするのは無理って事になりました。
正確には、古いバージョンのRaspbianを使えば、出来ないことはありませんが、最新のOSに追従できないのは痛すぎるので、別な方法を模索することにしました。
使用したのは、2018-11-13-raspbian-stretch.imgです。

問題点

Raspberry Piは、少し前からデスクトップ環境をLXDEからPIXELへ変更しています。(PIXELはLXDEをベースに開発)
~/.config/lxsession/LXDE-pi/autostartファイルは、パスから察するに、LXDEの機能だけど互換性確保のために、残されていたんでしょう。
2018-11-13-raspbian-stretchからディレクトリごと無くなっています。
PIXELに代替となるような仕組みがあっても良さそうですが、見つけることはできませんでした。

代替手段

幸いなことに、Raspberry Piには、もともと複数の自動起動の手段が用意されています。

(1)/etc/rc.local

簡単にプログラムを起動したい用途に良さそうです。

raspbian
$ nano /etc/rc.local

(2)autostart

これが、今回ダメになった奴です。

(3)crontab @reboot

ユーザー権限でプログラムが実行されます。
root権限で実行したら困るようなプログラムに使うようです。

raspbian
$ crontab -e

(4)/etc/init.d

こちらもJessieからsystemdが推奨されることになっているので使わない方が良さそうです。

(5)systemd

設定する事が多いため少し複雑ですが、細かな設定ができるので、これを使うのが良さそうです。

systemdで設定する

サービスを作成する

raspbian
$ sudo nano /etc/systemd/system/open-browser.service
open-browser.service
[Unit]
Description=launch chromium-browser

[Service]
User=pi
Environment=DISPLAY=:0
ExecStart=chromium-browser --kiosk http://www.youtube.com

[Install]
WantedBy=user@.service

サービスを再読み込み

raspbian
$ sudo systemctl daemon-reload

サービスの自動起動を有効化

raspbian
$ sudo systemctl enable open-browser.service

サービスを開始(確認)

raspbian
$ sudo systemctl start open-browser.service

終わりに

autostartが使えなくなってからまだ時間が経っていないからか、ネット情報が少なくて難儀しました。
lite(CUI版)にmatchbox-window-managerとchromium-browserをインストールする構成も試してみたのですが、起動時間が通常版よりも長いという予想に反した結果だったので、通常版を使用しています。

22
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
28