Ich nutze folgendes Startscript für meine Gameserver:
Code:
#! /bin/sh
################################################## #######
# Use at your Own Risk !!!!!!!!!!! #
# You need screen installed on your server #
################################################## #######
# Vars: #
# G_USER Username #
# NAME The Screen Name #
# DESC Server Desciption #
# PARAMS Start Parameter #
# DIR HLDS Directory (absolut) #
# SCRIPT Serverstart Script #
# DAEMON Daemon #
################################################## #######
# OPTIONS: (start|stop|restart|status) #
################################################## #######
################## User ################################
# Username unter dem der Server laufen soll
# NICHT als root laufen lassen
G_USER=zgsnet
################## Vars #################################
# Screen NAME
# Attach Screen : # screen -r NAME
# Detach Screen : # [CTRL]+[A]; [D]
# Don't press [CTRL]+[C] it will terminate screen
NAME=css
################## Server Description ###################
# Single Word DESC=myserver
# Multiple Words DESC="This is my Server"
DESC="CSS"
################## Parameter ############################
# CAN USE: +servercfgfile server.cfg OR +exec server.cfg
PARAMS="-game cstrike -insecure -nomaster +sv_lan 1 +map de_dust2 +maxplayers 16 -port 27016"
################## Directory ############################
# Your Path to Server Directory (absolute)
DIR=/gameserver/hl2
################## DAEMON ##############################
# You place your startscript here
SCRIPT=srcds_run
################################################## ######
#### DONT CHANGE ANYTHINK BELOW THIS LINE ! ! ! ####
################################################## ######
DAEMON=$DIR/$SCRIPT
case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "Server is already running!"
else
echo "Starting $DESC: $NAME"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
fi
;;
stop)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stopping $DESC: $NAME "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
;;
restart)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo -n "Stopping $DESC: $NAME "
kill `ps aux | grep -i screen | grep -i $NAME | awk '{print $2}'`
echo " ... done."
else
echo "Coulnd't find a running $DESC"
fi
echo -n "Starting $DESC: $NAME"
su $G_USER -c "cd $DIR; screen -d -m -S $NAME $DAEMON $PARAMS"
echo " ... done."
;;
status)
ps aux | grep -v grep | grep $DIR > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$NAME is UP" || echo "$NAME is DOWN"
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Das Problem ist jetzt, dass ich auf den Screen Prozess nicht zugreifen kann. Wenn ich es z.B. über "screen -r css" versuche, kommt die Meldung "There is no screen to be resumed machting css".
Es läuft jedoch ein Screen Prozess:
SCREEN -d -m -S css /gameserver/hl2/srcds_run -game cstrike -insecure -nomaster +sv_lan 1 +map de_dust2 +maxplayers 16 -port 27016
Woran liegt das? Mache ich irgendwas falsch?
Lesezeichen