質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

2853閲覧

RaspberryPiをローカルで自動実行

nojytatsu

総合スコア36

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/12/01 02:05

RaspberryPiをHDMI端子で液晶モニタとキーボード・USBのみ接続でLANケーブルやWiFi等のネットワークには接続せずにPythonやRubyプログラムを電源ON時に自動実行したい。

いろんなサイト等で下記rc.localを設定すれば実行できるとなっていたので実施。

$ sudo nano /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/programs/py/*****.py & exit 0

exit 0の前に実行するコマンドを入力しましたが、ネットワークに繋がったLANケーブルが接続されていると自動実行されますが、LANケーブルが接続されていないと自動実行されません。
OS側で他の設定は特に変更していません。
updateやupgradeは実施しています。

OS側で何か他に設定変更する必要があるのでしょうか?
それともそもそも私の設定が間違っているのでしょうか??

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d_red

2016/12/01 03:58

エラー等はでてないんですか?
guest

回答2

0

ベストアンサー

hostname -I
というのは、マシン(RaspberryPi)のIPアドレスを調べるコマンドです。

マシンに固定のIPアドレスが設定されていれば、ネットワークを使って他の装置に問い合わせをしなくて良いのですが、Raspberry PIのデフォールトではDHCPをつかってルーターからIPアドレスを取得する(割り当ててもらう)ようになっています。

マシンがネットワークにつながっていないと、IPアドレスを取得しようとするところで動作が止まってしまいます。(マシンは「IPアドレスを下さい」という信号をネットワークの端子に送信して答えを待ちますが、ネットワークはつながっていないので永遠に答えは返ってこないです。結果として、延々と答えを待っている状態が続いて次の動作が始まらないのです)

問題の原因は「マシンに固定のIPアドレスが設定されていない」事ですから、固定IPアドレスを設定することで解決できます。

固定IPを設定する方法は以下の記事で詳しく説明されていますので、参考にしてください。

Raspberry Pi に固定IPアドレスを割り当てる方法

投稿2016/12/01 02:41

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nojytatsu

2016/12/01 09:01

教えていただいた『hostname -I 』から今回はネットワークに接続はしないので、$ sudo nano /etc/rc.local で今回関係ない部分をコメントアウトすれば良いのかと思い試しました。 上記方法でも可能でした。 まだまだ、初心者で分からないことが多くご教授からいろいろな発想ができました。 ありがとうございます。
guest

0

こちらの原因はわかりませんが、起動時に実行する別の方法としてcronを使う方法もあります。
@rebootを指定すると起動時の実行も可能なはずです。
この方法を使ってみてはどうでしょうか?
参考

投稿2016/12/01 03:45

CodeLab

総合スコア1939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nojytatsu

2016/12/01 08:57

cronだと定期実行しか出来ないので・・・ 今回したかったのが起動時から実行してプログラムでのループなので1スキャンが1分未満になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問