Nachleuchten der Glaskugel:
Auch Deine Fehlerbehandlung ist mangelhaft. Ich zeig Dir das mal exemplarisch:
error_reporting(E_ALL);
ini_set( 'display_errors', 1 );
$errorLog = tempnam();
echo shell_exec( '/home/pi/start_pi3d.sh 2>'.$errorLog );
if ( $err = file_get_contents( $errorLog ) ) {
trigger_error( $err, E_USER_ERROR );
}
Dabei könnte sich übrigens herausstellen, dass Du Dein Skript richtig testen, also mit dem erwarteten User ausführen musst. In der Shell:
sudo −s
sudo -u www-data /home/pi/start_pi3d.sh
Nochwas: Brauchst Du eine Anleitung, wie man den Benutzer pi los wird?
Ein neuer Benutzer ist schnell angelegt und dann mit
sudo usermod -aG sudo TollerHecht
in die Lage versetzt, sudo auzführen (Debian, Raspian, e.t.c.)
Dann kann der pi weg.