前提・実現したいこと
Raspberry PiのGPIOよりpythonスクリプトの実行・停止をしたいです。
現在GPIOを管理するpythonスクリプトを作成し、GPIOにより他のpythonスクリプトの実行はos.system('sudo python3 /home/pi/a.py &')で出来ていますが、a.pyの停止方法がわかりません。
該当のソースコード
python
1import RPi.GPIO as GPIO 2import os 3 4SW1 = 19 5SW2 = 21 6 7GPIO.setmode(GPIO.BOARD) #コネクタピン番号をチャンネルとして扱う 8 9#pinを入力モードとし、pull up設定とする 10GPIO.setup(SW1, GPIO.IN, pull_up_down=GPIO.PUD_UP) 11GPIO.setup(SW2, GPIO.IN, pull_up_down=GPIO.PUD_UP) 12 13flg1 = 1 14flg2 = 1 15 16try: 17 while True: 18 19 # 入力状態チェック 20 key_in1 = GPIO.input(SW1) 21 key_in2 = GPIO.input(SW2) 22 23 # 入力状態が変化したら検出し、入力がLoだったらプログラム実行、Hiだったら停止 24 if flg1 != key_in1: 25 if key_in1 == 0: 26 os.system('sudo python3 /home/pi/a.py &') 27 else: 28 # ここに a.py の停止を書きたい 29 pass 30 flg1 = key_in1 31 32 if flg2 != key_in2: 33 if key_in2 == 0: 34 os.system('sudo python3 /home/pi/b.py &') 35 else: 36 # ここに b.py の停止を書きたい 37 pass 38 flg2 = key_in2 39 40 time.sleep(0.1) 41 42except KeyboardInterrupt: 43 pass 44 45GPIO.cleanup()
試したこと
sudo killall python3でpythonスクリプトが停止することは確認できましたが、全てのpythonスクリプトがとまってしまいます。
a.pyだけ、b.pyだけ停止する方法を知りたいです。
補足情報(FW/ツールのバージョンなど)
Raspberry Pi 3 Model B+
Raspbian 9.4(stretch)
Python 3.5.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。