私はフォーラムの束を読んだが、まだ運がありません..私はpythonファイル(liveSensor.py)を実行するPHPファイルを持っています。 pyファイルを一度実行して停止すると、ファイルをバックグラウンドで開いたままにする方法はありますか?コマンドラインでsudo python liveSensor.pyを実行すると、一度だけ実行されますが、sudo python -i liveSensor.pyを置くと開いたままになります。どのようにPHPでこれを行うには?Pythonスクリプトを継続的に実行するにはどうすればよいですか?
PHPファイル - liveSensor.pyファイルで
<?php
$try = exec('python sensor.py');
print_r ($try);
?>
Iを検出した後のSQLiteにその情報を渡している2つの振動センサを有していて、その後、私のPHPファイルは、データと、AJAXを使用して、私は表示することができることを取得しますそれ。このすべてが...絶えずPYファイルを起動する以外素晴らしい作品
PYスクリプト -
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
import sqlite3
KnockPin = 12
ShockPin = 13
inning = 1
runs = 0
strikes = 0
balls = 0
print ("Welcome to Bases Loaded")
def setstr():
global strikes
strikes = 0
global balls
balls = 0
def setup():
GPIO.setmode(GPIO.BOARD)
GPIO.setup(KnockPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(ShockPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def knock(ev=None):
with sqlite3.connect('basesLoaded.db') as conn:
global strikes
global inning
strikes += 1
if strikes ==0:
pass
elif strikes == 1:
conn.execute("UPDATE bl set STRIKE = 1 WHERE ID =1");
print ("Strike 1 :", conn.total_changes);
elif strikes == 2:
conn.execute("UPDATE bl set STRIKE = 2 WHERE ID=1");
print ("Strike 2 :", conn.total_changes);
elif strikes == 3:
global inning
inning +=1
conn.execute("UPDATE bl set STRIKE = 0 WHERE ID=1");
conn.execute("UPDATE bl set INNING = inning WHERE ID=1");
print ("Strike 3 Your Out :", conn.total_changes);
setstr()
print ("Inning Number :", inning);
def shock(ev=None):
with sqlite3.connect('basesLoaded.db') as conn:
global balls
balls += 1
if balls ==0:
pass
elif balls == 1:
conn.execute("UPDATE bl set BALL = 1 WHERE ID=1");
conn.commit()
print ("Ball 1 :", conn.total_changes);
elif balls == 2:
conn.execute("UPDATE bl set BALL = 2 WHERE ID=1");
conn.commit()
print ("Ball 2 :", conn.total_changes);
elif balls == 3:
conn.execute("UPDATE bl set BALL = 3 WHERE ID=1");
conn.commit()
print ("Ball 3 :", conn.total_changes);
elif balls == 4:
global runs
runs += 1
conn.execute("UPDATE bl set BALL = 0 WHERE ID=1");
conn.execute("UPDATE bl set RUN = 'runs' WHERE ID=1");
conn.commit()
print ("Run Scored! score is :", runs);
setstr()
def register_callbacks():
GPIO.add_event_detect(ShockPin, GPIO.FALLING, callback=shock, bouncetime=2500)
GPIO.add_event_detect(KnockPin, GPIO.FALLING, callback=knock, bouncetime=2500)
if __name__ == '__main__':
try:
setup()
register_callbacks()
except KeyboardInterrupt:
destroy()
これは、ブラウザで私の「ロード拠点へようこそ」というメッセージを返しますが、PYファイルは文句を言わない検出する開いたままセンサ。
liveSensor.pyが実際に何を行っているかについては、(明らかに?)より多くの情報を提供する必要があります。 – Aif
pythonデーモン:http://stackoverflow.com/search?q=python+daemonなぜPHPで起動するのですか? –
私は、ゲームがセットアップされているようにphpで起動すると、投手のマウンドからのスコアボードとして自分のタブレットを使用しています。したがって、私のローカルネットワーク上でapache2 Icanストリームを使用しています。また、私は最終的に、将来私がプログラムする複数のゲームの中から選ぶことができます。私はちょうどphp/htmlでインターフェイスを構築するより快適です –