ころちゃん

木工・電子工作・IoT・作ったもの試したものを記事にして投稿してます

Raspberry Pi起動時にプログラム自動起動する設定をしてみた

time 更新日:  time 公開日:2017/11/17

Raspberry Pi起動時にプログラム自動起動する設定をしてみた

Raspberry Pi起動時に温度取得のpythonを自動起動する設定を実施してみました。

この設定を実施することによって、sshでログインして、pythonのプログラムを動かすコマンドを手動で投入する必要がなくなります。Raspberry Pi2を起動するだけでプログラムが動作します。

プログラム実行のためのシェルを作成

ディレクトリ/home/piに「ondo.sh」というファイルを以下の内容で作成し、パーミッションを変更します。自動的に動かしたいプログラムはpythonでつくった「app_c.py」です。

#!/bin/sh

cd /home/pi/iot-hub-python-raspberrypi-client-app
python app_c.py <your Azure IoT hub device connection string>

パーミッションを変更します。755の意味合いは [rwxr-xr-x]

  • 所有者:読み・書き込・実行OK
  • グループ:読み・実行OK
  • その他のユーザ:読み・実行OK

$ sudo chmod 755 ondo.sh

etc/rc.localファイルを修正

etcディレクトリにある、rc.localファイルに、exit 0の前に以下ように追記し上書きします。

sh /home/pi/ondo.sh
 
exit 0

再起動すると、自動的に起動してくるようになりました。起動毎にログインして、コマンド入力する必要がなくなったので楽ちんです。

起動中のpythonプロセスだけを停止させる方法

上記手順で自動開始されたプログラムのみを停止させるには、以下の操作を実施し、プロセスを停止します。

動作しているpythonプロセスの番号を確認

$ ps aux | grep python

root       433 10.2  1.9  43540 18168 ?        Sl   14:06   0:09 python app_c.py HostName=******************;DeviceId=********;SharedAccessKey=***********************************
pi         838  0.0  0.0   4372   568 pts/0    S+   14:08   0:00 grep --color=auto python

動作しているプログラムがapp_c.pyなので、プロセス番号が433であることがわかります。

プロセスをkillコマンドで停止します。なんだか物騒なコマンドですよね。私は”プロセスを切る”と覚えました。

$ sudo kill 433

停止したか確認します。プロセス番号443が表示されていないので、停止したのがわかります。

$ ps aux | grep python
pi         892  0.0  0.0   4372   560 pts/0    S+   14:09   0:00 grep --color=auto python

プロセス番号を調べずに、直接プログラムを停止させるpkillコマンドは下記の通りです。プロセス番号を調べる一手間がないので楽ですね。

$ sudo pkill -f /home/pi/iot-hub-python-raspberrypi-client-app/app_c.py

自動起動の設定をしたプログラムはこちら。

sponsored link

down

コメントする




CAPTCHA


管理人

ころちゃん

木工で日用品を作ったり、懐中電灯を改造したりしてます。まだまだ素人ですがどうぞよろしく。



sponsored link

アーカイブ