ich möchte einen Gameserver per PHP mit hilfe von Sudo und Screen starten.
Irgendwie hab ich aber ein Problem mit Screen, es wird kein Prozess geöffnet.
Über die Shell funktioniert mein Script.
Die cod4_Inxded wird ausgeführt. Aber irgendwie startet cod4 nicht
Auf meinen Ubuntu Heimserver läuft das Script ohne Probleme.
Andere Scripte funktionieren auch mit meinen PHP Code.
Ich schlage mich seit 3 Tagen mit dem Problem herum.
Hat vll noch jemand mit meiner Linux Version ein Problem mit Screen?
Code: Alles auswählen
shell_exec("sudo -u ".$user." ./".$file." start");
Code: Alles auswählen
#!/bin/bash
# Include #
# Aus "Config.ini" #
PFAD=$(grep -e "serverpfad=" config.ini | cut -d= -f2)
IP=$(grep -e "ip=" config.ini | cut -d= -f2)
PORT=$(grep -e "port=" config.ini | cut -d= -f2)
SLOTS=$(grep -e "slots=" config.ini | cut -d= -f2)
SCREENNAME=$(grep -e "screen=" config.ini | cut -d= -f2)
USER=$(grep -e "user=" config.ini | cut -d= -f2)
DESC=$(grep -e "beschreibung=" config.ini | cut -d= -f2)
# Aus "Mod.ini" #
MOD=$(grep -e "mod=" mod1.ini | cut -d= -f2)
# Aus pb.ini
PB=$(grep -e "punkbuster=" pb1.ini | cut -d= -f2)
# Aus cfg.ini #
CFG=$(grep -e "config=" cfg1.ini | cut -d= -f2)
# Aus parameter.ini #
PARAMETER=$(grep -e "parameter=" parameter1.ini | cut -d= -f2)
# Aus rcon.ini #
RCON=$(grep -e "rcon=" rcon.ini | cut -d= -f2)
# Variablen #
SCRIPT=cod4_lnxded
case "$1" in
start)
screen -ls | grep $SCREENNAME >/dev/null 2>&1
if [ "$?" = "0" ]
then
echo "$DESC läuft bereits!"
else
echo "Starte $DESC"
cd $PFAD
screen -dms $SCREENNAME $PFAD/$SCRIPT $IP +set net_port $PORT +set sv_punkbuster $PB $SLOTS $RCON $PARAMETER +set fs_homepath $PFAD +map_rotate
fi
;;
stop)
# Stoppe Server #
echo "Stoppe $DESC"
cd $PFAD
screen -S $SCREENNAME -X quit
;;
restart)
$0 stop
$0 start
;;
status)
echo "Checking for $DESC: "
screen -ls | grep $SCREENNAME >/dev/null 2>&1
if [ "$?" = "0" ]
then
echo "läuft"
else
echo "gestoppt"
fi
;;
*)
echo "Benutze: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0