Page 3 of 3

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 20:17
by P1n0u
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

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

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 20:23
by shadowgaming
la ligne OPTION est obligatoire ou je peux laisser la mienne de démarrage ?

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 20:32
by P1n0u
il est obligatoire que tu place la tienne a la place :D (c'était un exemple)
mais par contre la variable $SERVERCONFIG que tu as sur le paramètre /dedicated_cfg=$SERVERCONFIG je ne sais pas d’où elle sort mais tu ne doit pas la placer directement elle devras être défini a l'avance.

juste comme ça tu as site de ta boite qui loue des serveur ?

edit : il y a une erreur sur la ligne option, la valeur doit etre entre ""

Code: Select all

OPTION="/title=SMStorm /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/SMStormRoyal.txt"

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 21:31
by shadowgaming
et si je fais :

./votrescript /game_settings=MatchSettings/SMStormElite.txt /dedicated_cfg=$SERVERCONFIG /title=SMStormElite@nadeolabs

et j’enlève le OPTION dans le script ?

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 22:30
by P1n0u
non tu ne peut pas faire ca. par contre si tu le souhaite je tu le souhaite voila ce que tu peux faire :

Code: Select all

#!/bin/bash                                                                               
    #
   
    OPTION="/game_settings=MatchSettings/SMStormElite.txt /dedicated_cfg="$2" title=SMStormElite@nadeolabs"
   
    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
et donc tu lanceras comme ca : ./NomDuScript.sh start $SERVERCONFIG

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 23:26
by shadowgaming
ce n'est pas plutôt ./NomDuScript.sh /dedicated_cfg=$SERVERCONFIG

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 23:32
by P1n0u
non non le script fonction comme ça : ./script.sh ARG1 ARG2

ARG1 il y a 4 options : start,stop,restart et status
ARG2 je m'en suis servis pour que tu définisse ton fichier de cfg

maintenant si je n'est pas fait de connerie dans le script (ce qui est pas impossible). ça doit fonctionner comme je te le dit.

Re: Multi processus SM sous linux

Posted: 17 Jun 2013, 23:41
by shadowgaming
non il ne marche pas, il ne me copie pas les fichier, je n'ai que pack et userdata

Re: Multi processus SM sous linux

Posted: 18 Jun 2013, 00:01
by P1n0u
désoler mais la j'ai fait mon maximum je ne comprend pas ta réponse, je pense que tu devrais être en mesure de te dépanner en temps qu’hébergeur professionnel.