Raspberry Pi2でGUIアプリをroot権限で自動起動する方法
デーモンや普通のソフトの自動起動はよくあるんだけど、表題がなかったのでまとめる。
特にRaspberry Pi2ではGPIOがroot権限でしか読み書きできないため、rootでGUIを自動起動したくなる。
結論:できた
Twitterで質問してみた
@keita44_f4 sudoの設定でそのGUIアプリをNOPASSWDとして、sudoを使って起動するのはどうですか?
— きみとぼく@がんばらない (@emaxser) 2016年7月12日
@keita44_f4 アプリに suid bit 立てておいてもダメ?
— むりどん (@sqm) 2016年7月12日
おまいら天才か…!
解法
今回はアプリ自体をよくアップデートするためsuidを毎回付け直すのが面倒なため、sudoにNOPASSWDオプションを付与することにした。
- `sudo visudo`で以下の権限を与える
- 参考URL:http://d.hatena.ne.jp/LukeSilvia/20080716/p1
- [username] ALL=(ALL) NOPASSWD: [myapp_path]
- 上記行を追加
- これで[username]で[myapp_path]をsudoで実行するときにパスワードがいらなくなる
- [myapp_path]にアプリをおく
- ~/.config/lxsession/LXDE_pi/autostartを編集
- @sudo [myapp_path]
- 上記行を追加