Raspberry Pi 起動時 実行スクリプト

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なるものです。

スクリーンショット 2016-03-05 14.26.24

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)
RasPi_LCD_GIF_3

本命はグローバルIPを取得してディスプレイに表示したかったので、こちらはボタンを押すとグローバルIPとローカルIPを切り替えて表示してくれるような仕様になってます。

めでたしめでたし。。。

参考サイト

Raspberry Pi, Raspbian Jessie (based on Debian Jessie) disable AutoLogin GUI & Console

ラズベリーパイ:起動時に自動実行したい

3 thoughts on “Raspberry Pi 起動時 実行スクリプト

  1. Taka-ojin

    この情報大変参考になりました。 当方は起動時に単にpython プログラムを
    自動的に走らせたいだけです。一応それなりに設定してrebootしたのですが、
    CUI画面で ”Unable to access the x display, is $DISPLAY set properly?”なる
    エラーメッセージが出てstopしてしまい困っております。
    何か解決方法は有りますでしょうか?
    なお、手動でLXterminalを開いて、”python XXX.py”で普通に起動、実行されます。

     

  2. Pingback: linux > 自動起動 > /etc/rc.local (2018/03/12版) > nohupでなくsudoで実行 | 設定ミス(致命的: OS起動しなくなる) | IT技術情報局

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください