Page 1 of 3

Multi processus SM sous linux

Posted: 15 Jun 2013, 10:26
by shadowgaming
Bonjour,

a chaque fois que je redémarre mon serveur shootmania il me créer un autre processus dans mes processus linux, est il possible d'avoir une commande stop afin de kill le processus avant qu'il en démarre un autre ?

Cordialement

Re: Multi processus SM sous linux

Posted: 15 Jun 2013, 10:29
by shadowgaming
voici la ma commande de lancement :

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

Re: Multi processus SM sous linux

Posted: 15 Jun 2013, 11:59
by TMarc
tu devrais te créer un petit script qui cherche le processus en marche actuellement, puis tu le kill.
la liste des processus actifs:
ps -aux | grep maniaplanetserver
ou semblable (ça fait 10 ans que je n'ai plus touché à linux :mrgreen: )

Re: Multi processus SM sous linux

Posted: 15 Jun 2013, 14:00
by shadowgaming
il n'y a aucune commande pour stoper le serveur ?

Re: Multi processus SM sous linux

Posted: 15 Jun 2013, 17:28
by TMarc
si, il y a une requête xml rpc pour le shutdown.
Mais il te faut un controlleur de serveur
https://github.com/maniaplanet/document ... r/basic.md

Re: Multi processus SM sous linux

Posted: 15 Jun 2013, 20:38
by shadowgaming
oui j'ai sa mais il y a aucune commande de stop pour linux ?

Re: Multi processus SM sous linux

Posted: 15 Jun 2013, 22:36
by TMarc
ben, dans certains scritps de serveurs, il y a certainement un bouton ou un lien qui déclanche l'arrêt du serveur,
mais c'est à voir avec le script de serveur.
Essaye de trouver en cherchant dans les forums sur TM.

Re: Multi processus SM sous linux

Posted: 16 Jun 2013, 09:51
by P1n0u
Il y a déjà eu des scripts de démarrage de fait, mais je te passe le mien qui est un peu modifié.
Tu devra démarré ton serveur avec le script pour qu'il sache le fermer

les options sont (start, stop, restart et status)

personnellement je renomme en plus l'executable "ManiaPlanetServer" en "Elite1", "Elite2"... afin d'avoir au premier coup d'oeil dans la liste des processus une vision claire des différent serveur qui sont sur la même machine.

Code: Select all

    #!/bin/bash
    #

    SRV_PATH=/home/maniaplanet/
    PID_PATH=/home/maniaplanet/
    OPTION= /title=SMStorm /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/SMStormRoyal.txt

    start() {
            if [ -e "$PID_PATH/ManiaPlanetServer.pid" ]
            then
                    PID=$(cat "$PID_PATH/ManiaPlanetServer.pid")
                    if ps -p $PID > /dev/null
                    then
                        echo "Server ManiaPlanetServer(pid:$PID) : already running !"
                    fi
            else
                    cd $SRV_PATH/Logs/
                    rm *
                    cd $SRV_PATH
                    ./ManiaPlanetServer $OPTION
                    ps aux | grep "ManiaPlanetServer" | grep -v "grep" | awk '{ print $2 }' > "$PID_PATH/ManiaPlanetServer.pid"
                    echo "Server ManiaPlanetServer : started !"
            fi
    }
    stop() {
            if [ -e "$PID_PATH/ManiaPlanetServer.pid" ]
            then
                    PID=$(cat "$PID_PATH/ManiaPlanetServer.pid")
                    kill -9 $PID
                    rm "$PID_PATH/ManiaPlanetServer.pid"
            fi

            echo -n "Stopping Server : "

            if [ -e "$PID_PATH/ManiaPlanetServer.pid" ]
            then
                    PID=$(cat "$PID_PATH/ManiaPlanetServer.pid")
                    kill -9 $PID
                    rm "$PID_PATH/ManiaPlanetServer.pid"
                    echo "Server ManiaPlanetServer : stopped"
            else
                    echo "Server ManiaPlanetServer : already stopped"
            fi
    }
    status() {
            if [ -e "$PID_PATH/ManiaPlanetServer.pid" ]
            then
                    PID=$(cat "$PID_PATH/ManiaPlanetServer.pid")
                    if ps -p $PID > /dev/null
                    then
                        echo "Server ManiaPlanetServer(pid:$PID) : running"
                    else
                        echo "Server ManiaPlanetServer : stopped"
                    fi
            fi

    }

    if [ -d $PID_PATH ]
    then
            echo -n ""
    else
            mkdir $PID_PATH
    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: 16 Jun 2013, 11:01
by shadowgaming
merci, moi il me faudrait uniquement la commande pour stopper le serveur ou le processus linux, je suis directeur d'une société de location de serveurs de jeux, les commandes de start et de reboot marche mais quand un client reboot, cela me créer un autre processus linux

Re: Multi processus SM sous linux

Posted: 16 Jun 2013, 11:33
by P1n0u
Enchanté Msieur le directeur :D

Vous effectuez le reboot par qu'elle methode ?
Regardez dans mon shell, il y a tout pour retrouver un nouveau PID.

exemple :

Code: Select all

ps aux | grep "ManiaPlanetServer" | grep -v "grep" | awk '{ print $2 }' > "$PID_PATH/ManiaPlanetServer.pid"
me retourne le PID et le note dans le fichier "ManiaPlanetServer.pid"