Moin, ich rätsel nun schon die ganze Zeit rum, aber ich komme nicht dahinter.
Kurz gesagt, der Redirect nach index.php funktioniert nicht, wenn ich dieses Pythonprogramm aufrufe, aufgerufen wird es aber sehr wohl, aber der Ladekreis im Browser dreht sich unendlich lange.
In tueralarm.py steht:
#!/usr/bin/python3
import time
import RPi.GPIO as GPIO
from subprocess import call
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.IN)
while 1:
time.sleep(0.5)
if GPIO.input(26) == GPIO.HIGH:
call('/home/pi/machwas.sh')
print("Schreib was")
Alles anzeigen
Aber der Reihe nach, ich habe einen Apache2 mit PHP aufgesetzt, in /var/www/html liegt eine index.php , eine alarm_an.php und eine alarm_aus.php.
In der index.php steht:
<a href="alarm_an.php"><img src="bild_an.jpg" width="350" height="350"></img></a>
<a href="alarm_aus.php"><img src="bild_aus.jpg" width="350" height="350"></img></a>
In der alarm_an.php steht:
Wie geschrieben, es wird auch ausgeführt, nur dreht sich die runde Ladeuhr unendlich lange und nichts geht mehr, bis ich abbreche und die Seite neu lade.
Wenn ich statt dem Pythonscript irgend ein anderes Programm aufrufe, funktioniert es wie es soll. Und ja, www-data darf sudo
In der alarm_aus.php steht:
Da funktioniert alles wie gewünscht.
Wieso nicht mit dem Pythonscript ?
P.S. Ich habe auch schon versucht, das ganze in eine .sh zu packen, aber auch dann dreht sich der Kreis unendlich:
Ich habe auch schon ein & drangehängt, mit den Pfaden gespielt, aber es will einfach nicht.
Gelöst, so funktionierts:
<?php
exec('sudo /home/pi/tueralarm.sh > /dev/null 2>/dev/null &');
header("Location:../index.php");
?>
Ebenso mit .py: