Huhu Zusammen,
aktuell werde ich von PHP an der Nase herumgeführt.
Ich versuche via exec/shell_exec im Homeverzeichnis eines meiner unix-Users per PHP ein Bash-Script zu triggern (#!/bin/bash), genauer gesagt ist es ein Script um einen Minecraftserver zu starten, nachdem die Variablen dafür korrekt angepasst wurden.
Der Code, der dabei ausgeführt wird, lautet wie folgt:
#!/bin/bash
mc_start() {
if pgrep -u $USER -f $SERVICE > /dev/null ; then
echo "$SERVICE is already running!"
else
echo "Starting $SERVICE..."
#cd $MCPATH
as_user "cd $MCPATH && screen -dmS ${SCREENNAME} $INVOCATION"
sleep 11
if pgrep -u $USER -f $SERVICE > /dev/null ; then
echo "$SERVICE is now running."
else
echo "Error! Could not start $SERVICE!"
fi
fi
}
Alles anzeigen
Der sleep-Wert wurde von mir hinzugefügt, da das Script sonst fehlerhaft agiert, gerade bei einer Infitiy Instanz, aber das nur nebenbei.
Fakt ist, dass er nicht in Zeile 9, sondern in Zeile 14 landet. Dies macht sich auch auf der Konsole mittels htop bemerkbar, weil einfach nichts startet.
Ich habe schon verschiedenes versucht, aber gleich was ich versucht habe, es wollte einfach nicht.
Hier mal dazu das aktuelle "Billigscript":
<?php
$old_path=getcwd();
chdir('/home/pfadzumskript/');*/
$out=shell_exec("./minecraft4 start");
chdir($old_path);
echo '<pre>$out</pre>';
Ich habe auch schon mit dem Spaß su -c "cd $DIR && $DIR/$SCRIPT start" - $USER - $PW gespielt, dieses Bashscript wiederum in das selbe Verzeichnis gepackt, mit 755 und auch 744 getestet, wie die zugehörige PHP-Datei, aber selbst damit totenstille.
Auch habe ich das Script via cp kopiert und versucht, ausführen zu lassen => Nix!
Via Symlink "kopiert" => Nix!
Entweder mache ich irgendwas komplett falsch oder irgendwas läuft hier komplett falsch.
Auf dem Server (Rootserver, kein vServer), läuft nginx mit PHP7.2-FPM und die Logs geben mir atm auch keine Auskunft, was mich doch sehr verwundert.
Irgendwelche Vorschläge, wie ich den Mist zum laufen bekomme?