- 締切済み
ラズパイの/etc/rc.localでの自動起動
現在ラズベリーパイ3でpythonで作成したTCP_clientを起動するためにシェルスクリプトを作成して/etc/rc.localに登録し、ラズパイに電源投入で起動と同時にtcp_clientのプログラムが起動するようにしています。 この"tcp_client1_02.py"のpythonプログラムがたまにダウンしてしまう症状が発生していたため、シェルスクリプトでpsコマンドでこのプログラムが起動していなかったら、自動的に再起動するようにするものを作成しました。 (tcp_client1_02_process_check.sh) #!/bin/sh while true do #isAlive=`ps -ef | grep " sudo python /home/pi/Desktop/tcp_client1_02.py " | \grep -v grep | wc -l` #if [ $isAlive = 1 ]:then if ps axww | grep "[s]udo python /home/pi/Desktop/tcp_client1_02.py" >/dev/null then echo "プロセスは生きています" else echo "プロセスは死んでいます" sudo sh /home/pi/python/autorun_script fi sleep 3 done このシェルスクリプトを/etc/rc.localに登録しています。 (/etc/rc.local内) sh /home/pi/python/autorun_script & sh /home/pi/python/tcp_client1_02_process_check.sh & このシェルスクリプトは echo "プロセスは死んでいます" sudo sh /home/pi/python/autorun_script プロセスが死んだ場合にautorun_scriptというシェルスクリプトを起動するようにしているのですが、ラズパイ起動時にこのプログラムはバックグラウンドで動作しているようなので、いつのタイミングでこのルーチンに飛んでいるのかわからないので、 sh /home/pi/python/tcp_client1_02_process_check.sh の後ろの”&”を削除してみて再起動してみたのですが、これでもプログラム動作の表示が出てこないのですが、この動作を表示させてみることは可能でしょうか? ご教示いただきますよう、宜しくお願い致します。
お礼
回答頂きありがとうございます。 大変助かります。 頂きましたシェルスクリプトを ログファイルの出力先を LOGDIR=/home/pi/python として設定して実行してみました。 /home/pi/pythonに20160504.logというテキストファイルが作成されたので、確認してみたところ。 20160504-091914 :プロセスは死んでいます と、この1行が出力されており、TCPのパケットも出力されているので、動作できているようなのですが、3秒ごとにこのログ行が出力されるはずですが、この1行しか出力されません。 再度 $ sudo sh /home/pi/python/test20160504_01.sh で起動をかけるとログファイルに行が追加されるのですが、起動時の1回のみというのがわかりました。 となると、test20160504_01.shのシェルスクリプトが止まっているのでは? と思い、 psコマンドでプロセスを調べてみたところ pi@raspberrypi:~ $ ps aux |grep test20160504 root 552 0.0 0.3 9284 3160 ? S 08:48 0:00 sudo sh /home/pi/python/test20160504_01.sh root 632 0.0 0.0 1912 364 ? S 08:48 0:00 sh /home/pi/python/test20160504_01.sh root 1514 0.0 0.3 8256 3260 pts/0 S+ 09:19 0:00 sudo sh test20160504_01.sh root 1521 0.0 0.0 1912 408 pts/0 S+ 09:19 0:00 sh test20160504_01.sh pi 1580 0.0 0.1 5728 1852 pts/1 S+ 09:29 0:00 grep --color=auto test20160504 このtest20160504_01.shのシェルスクリプトのプロセスは動作中と出てきます。 このプロセスは動いているのに、ログが出力されない原因と解決方法をどうぞ、ご教示宜しくお願い致します。