Re: Multi processus SM sous linux
Posted: 17 Jun 2013, 20:17
Bon alors je te propose une version modifier du shell de lancement il ne fonctionnera qu'a condition d’être a la racine du dossier maniaplanet (de ton client). j'ai vue que tu utilisai une variable pour le fichier de config du serveur (/dedicated_cfg=$SERVERCONFIG) il est possible de rajouter un argument supplémentaire au shell mais ça tu seras le faire toi même (enfin j’espère :s )
pour résumé au start le script crée un fichier pid purge les logs et lance le serveur, au restart il stop le serveur (s'il tourne encor) purge les log et démarre un nouveau serveur, et stop il tue le PID du serveur en cours.
maintenant si cela n'est toujours pas adapté personnellement je ne pourrais plus rien pour toi
bon courage
pour résumé au start le script crée un fichier pid purge les logs et lance le serveur, au restart il stop le serveur (s'il tourne encor) purge les log et démarre un nouveau serveur, et stop il tue le PID du serveur en cours.
maintenant si cela n'est toujours pas adapté personnellement je ne pourrais plus rien pour toi

bon courage
Code: Select all
#!/bin/bash
#
OPTION= /title=SMStorm /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/SMStormRoyal.txt
start() {
if [ -e "ManiaPlanetServer.pid" ]
then
PID=$(cat "ManiaPlanetServer.pid")
if ps -p $PID > /dev/null
then
echo "Server ManiaPlanetServer(pid:$PID) : already running !"
fi
else
cd Logs/
rm *
cd ..
./ManiaPlanetServer $OPTION
ps aux | grep "ManiaPlanetServer" | grep -v "grep" | awk '{ print $2 }' > "ManiaPlanetServer.pid"
echo "Server ManiaPlanetServer : started !"
fi
}
stop() {
if [ -e "ManiaPlanetServer.pid" ]
then
PID=$(cat "ManiaPlanetServer.pid")
kill -9 $PID
rm "ManiaPlanetServer.pid"
fi
echo -n "Stopping Server : "
if [ -e "ManiaPlanetServer.pid" ]
then
PID=$(cat "ManiaPlanetServer.pid")
kill -9 $PID
rm "ManiaPlanetServer.pid"
echo "Server ManiaPlanetServer : stopped"
else
echo "Server ManiaPlanetServer : already stopped"
fi
}
status() {
if [ -e "ManiaPlanetServer.pid" ]
then
PID=$(cat "ManiaPlanetServer.pid")
if ps -p $PID > /dev/null
then
echo "Server ManiaPlanetServer(pid:$PID) : running"
else
echo "Server ManiaPlanetServer : stopped"
fi
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
restartall)
stop 1
stop 2
stop 3
start 1
start 2
start 3
;;
*)
echo "Usage: {start|stop|restart|status}"
exit 1
;;
esac
exit 0