18.08.2012, 12:58
Hey,
Ich habe mehrere Gameserver mit screen laufen, seitdem ich das neue Startscript benutze um die Gameserver täglich neuzustarten ist mir aufgefallen das bei: screen -r keiner der Laufenden Session angezeigt wird. Weder als Root noch als unpreviligierter User. Damit erklärt sich der fehler warum der Restart nicht funktioniert. Jemand rat wie das behebe?
Teklab ist aber trotzdem in der lage den Prozess zu töten weshalb auch immer.
Code:
Ich habe mehrere Gameserver mit screen laufen, seitdem ich das neue Startscript benutze um die Gameserver täglich neuzustarten ist mir aufgefallen das bei: screen -r keiner der Laufenden Session angezeigt wird. Weder als Root noch als unpreviligierter User. Damit erklärt sich der fehler warum der Restart nicht funktioniert. Jemand rat wie das behebe?
Teklab ist aber trotzdem in der lage den Prozess zu töten weshalb auch immer.
Code:
PHP-Code:
# replace <newuser> with the user you created above
SRCDS_USER="test"
# Do not change this path
PATH=/bin:/usr/bin:/sbin:/usr/sbin
# The path to the game you want to host. example = /home/newuser/dod
DIR=/home/.........
DAEMON=$DIR/srcds_run
# Change all PARAMS to your needs.
PARAMS="-console -game left4dead2 +map c1m1_hotel +maxplayers 8 "
NAME=L4D1
DESC="Left4Dead2"
case "$1" in
start)
echo "Starting $DESC: $NAME"
if [ -e $DIR ]; then
cd $DIR
su $SRCDS_USER -l -c "screen -d -m -S $NAME $DAEMON $PARAMS"
else
echo "No such directory: $DIR!"
fi
;;
stop)
if screen -ls |grep $NAME; then
echo -n "Stopping $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... done."
else
echo "Couldn't find a running $DESC"
fi
;;
restart)
if screen -ls |grep $NAME; then
echo -n "Stopping $DESC: $NAME"
kill `screen -ls |grep $NAME |awk -F . '{print $1}'|awk '{print $1}'`
echo " ... done."
else
echo "Couldn't find a running $DESC"
fi
echo -n "Starting $DESC: $NAME"
cd $DIR
screen -d -m -S $NAME $DAEMON $PARAMS
echo " ... done."
;;
status)
# Check whether there's a "srcds" process
ps aux | grep -v grep | grep srcds_r > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "SRCDS is UP" || echo "SRCDS is DOWN"
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
exit 0