Raspberry Piで起動時に自動でスクリプトを走らせた時のメモです。
以前は /etc/inittab を変更してうんぬん… みたいな感じでできたそうなんですが、最近(2016/03/05現在)OSを入れ直してやろうとしたらそのファイルが存在しなかったんで、ちょっと困りました。
そんな感じで、わすれ無いようにメモ書き程度に。。。
※2016.3.5に作成したものです.どうやら結構仕様が変わってるみたいなんで,お気をつけください.
環境
- Raspberry Pi B
- OS : RASPBIAN JESSIE LITE
はじめに
Raspberry PiのOSであるRaspbianの元となるDevianの安定版が(2015/04/25に)WheezyからJessieというものになりました。
そこで、Raspbianもそれに対応して新しくなったみたいです。
詳しい話は知りませんが、その際に /etc/inittab あたりが変更になったみたいです。
自動ログインの設定
利用しはRaspberry Piの公式サイトのダウンロードページにある”RASPBIAN JESSIE LITE”のVersion: February 2016なるものです。
SDカードへの書き込み、その他インストールは他に紹介するサイトがたくさんあると思うので、そちらを参考にしてください。
自動ログインについて、こちらのサイトにあるリンクのこちらのページに紹介されている手法を利用しました。
自分のやりたい事としては、自動でpiのアカウントにログイン後Pythonのプログラムを自動で動作させたかっただけなので”Console Autologinというものを参考にしました。
systemctl set-default multi-user.target ln -fs /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
これで起動時に自動でログインされるようになりました。
ここから実行したい処理を/etc/rc.localファイルに書き込みます。
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi sudo python /home/pi/start_up/RasPi_LCD/lcd_ip.py & exit 0
ここではsudo python から始まる20行目が実行したいコマンドです。&をつけることによってバックグラウンドで実行しています。
こと時に exit 0 より前に書くことに注意してください。
以上で設定が終了です!
まとめ
上記の手法を使って、起動時にLCDで自分のIPアドレスを表示してくれるプログラムを作成しました。
これで起動時に毎回ディスプレイを繋がなくてもsshできる〜♪ (IP固定しろって話ですが…w)
本命はグローバルIPを取得してディスプレイに表示したかったので、こちらはボタンを押すとグローバルIPとローカルIPを切り替えて表示してくれるような仕様になってます。
めでたしめでたし。。。
参考サイト
Raspberry Pi, Raspbian Jessie (based on Debian Jessie) disable AutoLogin GUI & Console
この情報大変参考になりました。 当方は起動時に単にpython プログラムを
自動的に走らせたいだけです。一応それなりに設定してrebootしたのですが、
CUI画面で ”Unable to access the x display, is $DISPLAY set properly?”なる
エラーメッセージが出てstopしてしまい困っております。
何か解決方法は有りますでしょうか?
なお、手動でLXterminalを開いて、”python XXX.py”で普通に起動、実行されます。
Pingback: linux > 自動起動 > /etc/rc.local (2018/03/12版) > nohupでなくsudoで実行 | 設定ミス(致命的: OS起動しなくなる) | IT技術情報局
host名.local で(デフォルトでは、raspberrypi.local)でアクセスできませんか?