hoffe mit euch das Problem lösen zu können :>
Das folgende Script existiert 6 mal wobei immer nur der `NAME` als TDM,CTF,FFA,DUEL,FREEZE geändert ist, doch wenn man einen der anderen startet ist der erste zwar noch im `screen -ls` zu lesen doch da ist er nicht mehr.
Alles manuell zu starten klappt ohne Probleme
Code: Alles auswählen
G_USER=root
NAME=CA
DESC="Quakelive Server"
PARAMS="+set sv_pure 1 +set dedicated 2 +exec CA.cfg"
DIR=/home/QL
SCRIPT=qll
DAEMON=$DIR/$SCRIPT
case "$1" in
start)
if [[ `su $G_USER -c "screen -ls | grep $NAME"` ]]
then
echo "$DESC 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 $SCRIPT > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && echo "$DESC is UP" || echo "$DESC is DOWN"
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Und evt. noch eine Idee das ganze für alle 6 Server in einem Script zu vereinen?
Danke im Voraus