Rassberry pi3 でスイッチを押したらファイルを確認するプログラムを組み,デーモン化したのですがスイッチを押しても反応がありません。
デーモン化したpythonスクリプト/usr/local/bin/test/Swich_Deamon.py(正式にはDAEMONですがスペルミスはお気になさらず)自体を直接実行すると正常に処理は行われます(待ち状態となり,そこでボタンを押すと今いるディレクトリのファイルを確認できます)。しかしデーモン化し、任意のタイミングでボタンを押しても何も反応がありません。
直接実行すると正常に処理が行われたためSwich_Deamon.py自体には誤りはないと思うのですが。。。
何かご指摘や、考えられる可能性・改善などありましたら教えていただけると幸いです。
###発生している問題・エラーメッセージ
デーモン化したスクリプトが動作しない
###該当のソースコード
python
1import RPi.GPIO as GPIO 2from time import sleep 3import subprocess 4 5def defSwitchLCD(channel): 6 cmd = "ls -l" #実行するコマンド 7 if channel == 21: 8 subprocess.call(cmd, shell=True) #コマンドを実効 9 10GPIO.setmode(GPIO.BCM) 11GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_UP) 12#GPIO.RISING(ボタンを押してあげるイベント)を検知するとdefSwitchLCDを呼び出し,200msのあいだ他の命令を受け付けない 13GPIO.add_event_detect(21, GPIO.RISING, callback=defSwitchLCD, bouncetime=200) 14 15try: 16 while True: 17 sleep(0.01) 18 19except KeyboardInterrupt: 20 pass 21 22GPIO.cleanup()
###試したこと
「service --status-all」で起動しているデーモンを調べたところ,デーモンは正常に起動しておりました。
「cat /sys/class/gpio/gpio21/value」でスイッチの状態を調べたところ,押している時には0,離しているときには1が観測されました。ふつうは逆ではないのかと思ったのですが、直接呼び出して実行すると正常に動作したので処理自体には影響がないと思っております。
デーモンスクリプトmydervice.sh及びにSwich_deamonには実行権限を与えています。
###補足情報(言語/FW/ツール等のバージョンなど)
OSはrasbianです
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。