Skript wird nicht im Hintergrund ausgeführt

Also ich habe folgendes php Skript (YTPlayer.php5):

<?php
function searchInFile($source, $search){

    $shellBefehl = „grep -o -e ‚$search‘ $source“;

    exec($shellBefehl, $var);

    return $var;

}
// Playlist ID Hier normal eingefügt
$one=" ";

//Playlist von YT laden
$play_url=„https://gdata.youtube.com/feeds/api/playlists/".$one…“ ;

//In Index.html spiechern
shell_exec(’wget '.$play_url.'’);

//Brauchbare URLs extrahieren
$URLs = searchInFile(„index.html“, „https://[[:alnum:]/.&;=_-?]*app=youtube_gdata“);

//Youtube Musik über URL aufrufen
foreach ($URLs as $YTURL){
shell_exec('omxplayer youtube-dl -g '.$YTURL.'');
}

Dieses rufe ich auf meinem Raspberry Pi 2 über
php /home/pi/YTPlayer.php5 auf. Hier funktioniert es problemlos. Wenn ich es jetzt über ein anderes Skript, welches im Hintergrund läuft, welches auf Inputs des Pi reagiert, starten will, macht es nichts. Das anderes Skript funktioniert aber, da jegliche andere funktionen des Skripts ausgeführt werden.

(Button.php)

<?php
$preval1 = 1;
$preval2 = 1;
while(true){
//Auslesen von Button 1 & 2, 1 = Nicht gedrückt, 0 = gedrückt.
$val1 = trim(@shell_exec("/usr/local/bin/gpio -g read 9"));
$val2 = trim(@shell_exec("/usr/local/bin/gpio -g read 11"));
//Button 1 Gedrückt
if(($val1 == 0) and ($preval1 == 1)) {
$preval1 = 2;
include ‚Mail.php‘;
//echo „Button 1 pressed“;
}
//Button 2 Gedrückt
elseif(($val2 == 0) and ($preval2 == 1)) {
$preval2 = 2;
//echo „Button 2 pressed“;
shell_exec(„php /home/pi/YTPlayer.php5“);
}
//Button 1 Losgelassen
if($val1 == 1){
$preval1 = 1;
}
//Button 2 Losgelassen
if($val2 == 1){
$preval2 = 1;
}
}
?>

Kann mir jemand sagen warum es nicht funktioniert und was ich ändern muss damit es funkioniert ? Bisher habe ich leider noch nicht so häufig mit Linux basierten Systemen gearbeitet.

welche rechte hat das skript

kann es auf all die sachen auch zugreifen ?

ich hab es in /etc/rc.local eingetragen, da ich in einem Guide gelesen hatte, dass man dort die GPIOs beim Start festlegen kann. Daher weis ich nicht genau welche Rechte es hat.

Ich habe auch versucht es über den www-data User über eine Website zu starten. Dies funktioniert ebenfalls nicht.

Prüfe einfach mal mit einem LOGfile was überhaupt
von deinem Script abgearbeitet wird .
Nutze überall Absolute Pfade (auch zum php)

Dann poste hier genau die Cronejob Zeile.

Das Problem ist generell das Crone jobs keine User Profile Laden
somit z.b.
shell_:exe(‚php‘)
findet schon mal kein php den php ist z.b. unter /usr/sbin/php

Das Button Skript als solches Funktioniert ja, da z.b. wenn ich Button 1 drücke die Mail.php aufgerufen wird. Daher müsste es ja wenn an der Berechtigung von YTPlayer.php5 liegen.

Logfile kann ich erst später testen, wenn ich zuhause bin.

Von der Website funktioniert es ja auch nicht. Daher müsste es ja eine der Funktionen welche in dem oberen Skript genutzt worden sind, welche mehr Rechte benötigen.

Es gibt nicht viele Fehlerquellen .

Bei Cronejobs ist generell kein User Profile geladen und damit PATH variablen nicht gesetzt.
Ausserdem ist es immer sinnvoll Absolute Pfade anzugeben , sowohl zu programmen als auch zu dateien etc -

Beim Server wiederum kann alles schon scheitern an der Berechtigung des Users.