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

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

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

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

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

Q&A

2回答

8599閲覧

ラズベリーパイでpythonを自動起動実行すると5分くらいで止まってしまうのを解決したい

tamasa

総合スコア11

Raspbian

Raspbianは、DebianベースのRaspberry Pi用ディストリビューション。ハードウェア浮動小数点演算を有効にすることが可能で、Webブラウズなどの速度を向上できます。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Raspberry Pi

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

0グッド

0クリップ

投稿2018/04/26 07:16

編集2018/05/01 07:31

ラズベリーパイでpythonで書いたプログラムをlxterminalで実行すると問題なく動作し続けます。このプログラムを起動時にlxterminalをオープンし、自動実行するように下記のファイルを作成しましたが上手く動作しません。
具体的には、ラズベリーパイの電源を切り(またはreboot)、pythonのプログラムを起動時に自動実行するとネットワーク接続を切っていると丁度10分くらいで止まってしまいます。起動後にターミナルからコマンドを入力して実行するとネットワークの接続を切っても止まりません。修正方法をお教え願えませんか。

 「止まる」という現象は、lxterminalが閉じて、動作していたプログラムが停止し、lxterminalに表示させていた内容が見れなくなり、他の液晶ディスプレイで表示させていた内容が更新されず、表示が変わらずに固まっている状態です。

 自動実行は、/home/pi/.config/autostartのフォルダにhogehoge.desktopというファイルを作り、下記のコードを入力して再起動し、実行させています。

ラズベリーパイ3 モデルB
OS:Raspbian GNU/Linux 9.3 (stretch)
python2.7

※下記の方法では起動しても動きませんでした。
https://teratail.com/questions/30955

python2.7

1[Desktop Entry] 2Exec=lxterminal --geometry=200x50 -e python /home/pi/sht31ssp3.py 3Type=Application 4Name=hogehoge 5Comment=Keep your pace as healthy as possible 6Terminal=true 7

(追加:ログを取る為にコードの冒頭に記載追加)

python2.7

1import logging 2 3logger = logging.getLogger() 4logger.setLevel(logging.DEBUG) 5 6formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') 7 8handler = logging.FileHandler(filename='log.txt') 9handler.setLevel(logging.DEBUG) 10handler.setFormatter(formatter) 11 12logger.addHandler(handler) 13 14logger.debug('debugText') 15logger.info('infoText') 16logger.warn('warnText') 17logger.error('errorText') 18logger.critical('criticalText') 19

宜しくお願い致します。

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

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

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

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

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

hayataka2049

2018/04/27 02:01

「止まってしまう」とはどのような状況ですか? エラー吐いて終了? ラズパイごとスリープしちゃう? それによってやることは変わってくるはずです
coco_bauer

2018/04/27 12:45

sht31ssp3.py って、どんなプログラムなのですか? 起動時にオープンしたlxterminalに表示される内容と、lxterminalで実行したときに表示される内容は同じですか?
tamasa

2018/05/01 00:19

ご指摘有難うございます。「止まってしまう」とは、lxterminalが閉じており、ラズパイはスリープしません。エラーも表示ターミナルがとじているので分かりません。電源を切っていたネットワークを起動すると自動で接続でき、VNC画面にて確認しており、lxterminalウィンドウは閉じています。
tamasa

2018/05/01 00:24

sht31ss3.pyは温湿度を表示させるプログラムです。lxterminalに温湿度をリアルタイムで表示し続け、別に接続している液晶ディスプレイにも表示されます。lxterminalで実行時はコマンドの入力「$」が表示されますが、実行中の画面のみ表示されて温湿度が表示されます。コマンド入力するかしないかの表示がでるかでないかの違いで実行中の表示内容は同じです。
guest

回答2

0

ふつうはどういう実行のさせかたをしようと、途中で止まる、ということはありません。
なので、まずどういう原因で止まる(あるいは止まっているように見える?)のかを追求する必要があります

そのプログラムでなんかログファイルかなんかを作るようにして、その止まるという時になにが起こってるか探ってみてはどうでしょうか。

投稿2018/05/01 01:22

y_waiwai

総合スコア87749

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

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

tamasa

2018/05/01 06:03 編集

ご回答有難うございます。ログファイルを下記のページを参考にプログラムにログファイルを作成するように上記のように書き換えて実行してみました。 http://www.raspberrypirulo.net/entry/2016/09/06/ログのファイル出力 lxterminalからコマンド入力で実行すると動きましたが、rebootすると最初から動きませんでした。ログファイルが生成されていましたので確認しましたところ詳細が分かりません。どのように原因を確認すれば宜しいでしょうか。初心者でよく分かっていませんが、止まる原因の突き止める方法をお教え頂けると助かります。宜しくお願い致します。 2018-05-01 14:37:10,335 - DEBUG - debugText 2018-05-01 14:37:10,335 - INFO - infoText 2018-05-01 14:37:10,336 - WARNING - warnText 2018-05-01 14:37:10,337 - ERROR - errorText 2018-05-01 14:37:10,337 - CRITICAL - criticalText
y_waiwai

2018/05/01 06:35

ということは5分ぐらいで止まる、じゃなくて、そもそも起動していないってことでしょうか。 ということで気になるのは、 > 自動実行は、/home/.config/autostartのフォルダにhogehoge.startというファイルを作り、 /home/ユーザ名/.config/autostart のフォルダじゃないでしょうか
tamasa

2018/05/01 07:30

すみません、文書を修正しましたが、止まるのは丁度10分程度です。起動はしており、別にラズベリーパイにつけた液晶ディスプレイは表示されて動作は確認出来ています。また、訂正しますが、/home/pi/.config/autostartのフォルダにhogehoge.desktopというファイルを作成しています。本文を修正しておきます。
y_waiwai

2018/05/01 07:43

起動できてるならログ出してみようよ(最初に戻る
tamasa

2018/05/01 07:51

詳細な原因が分かるログの出し方が分かりません。調べていますが、具体的方法が分かりませんのでお教え頂けると助かります。自分でも調べ続けております。
y_waiwai

2018/05/01 07:57 編集

あなたが組んだコードなら、どこでどう動いて、なにがどうなるというのは、あなたが全てわかっているはずです。 しかし、それに反してコードが終了、(あるいは異常終了)してしまうということなので、その原因というのは、あなたが考えて出力させないといけません。 調べてどこかに載っている、というもんではありません。
tamasa

2018/05/01 08:11

ご指摘有難うございます。コードは初心者なもので見ようみまねで作ってみていますので、恥ずかしながらエラーがどこにあるのか分からない状態です。lxterminalからは実行できますが、自動実行にして再起動すると止まってしまうということしか分からず、作成した自動起動のコードの意味も正直なぜ自動実行できるのかも分かっていません。勉強不足ですね。
y_waiwai

2018/05/01 08:22

たとえば、全ての関数を呼び出す個所に、呼び出す前と呼び出す後にログを仕込みます logger.info('uniuni start') uniuni() logger.info('uniuni end') そうしておけば、どこの関数の実行中にコケたか、というのがログを見ればわかる、というのが理解できるでしょうか。 それがわかれば、その関数の中のコードに対して同じようにログを仕込んでおいて、どこでコケるかを調べる、また、変数の値などをログで出しておくなどします。 ということを繰り返していって原因を追求します
tamasa

2018/05/07 00:43

ご回答有難うございます。関数の前後に記載して動作させてみましたがエラーで動きませんでした。別の方法で試しましたところ、ひとまず上手く行きましたので原因追求を続けていこうと思います。
y_waiwai

2018/05/07 00:55

まあ、動けばそんでいいんだろうけど、なんかわからんけどこーやったら動いた、としてると、なんかわからんけど動かんようになった、となるんだよなあ。
tamasa

2018/05/09 07:38

そうなんですよね、仰る通りでレベルがいつまでも上がりませんよね。解決できましたら投稿します。。。
guest

0

systemdを用いた上記とは別の下記の方法で試しましたところ、再起動後も問題なく動作しました。
https://qiita.com/tkato/items/6a227e7c2c2bde19521c

投稿2018/05/07 00:50

tamasa

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問