Script démarrage automatique

Tout ce qui concerne la configuration et l'administration des serveurs.
Rendez-vous dans Outils de communication & communautaires pour la conception de sites Internet.
Dark John
Messages : 136
Enregistré le : 30 juil. 2008, 23:50
Localisation : Martinique

Script démarrage automatique

Message par Dark John » 19 août 2011, 15:03

Bonjour/Bonsoir,

Je faisais des recherches sur les scipts de démarrage et sur les Game Panel,
et je suis tombé sur ça : http://forum.ovh.com/showthread.php?t=14608 .

Est-il possible de l'adapter pour UrT et, pourquoi pas, un bot tel que Kiwi ou LeelaBot ?
« Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. »

« Quand il n'y a plus de place en Enfer, les morts reviennent sur Terre. »

Avatar du membre
PtitBigorneau
Messages : 516
Enregistré le : 19 oct. 2008, 13:50
Localisation : brest

Re: Script démarrage automatique

Message par PtitBigorneau » 19 août 2011, 15:15

perso j utilise ca

Code : Tout sélectionner

#! /bin/bash
### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

# le nom du service
SERVICE_NAME="Games Servers"
# le répertoire où se trouvent les exécutables du service
SERVICE_DIRECTORY=/root/
# le nom du script de démarrage du service
SERVICE_STARTUP_SCRIPT=startserver.sh
# le nom du script d'arrêt du service
SERVICE_SHUTDOWN_SCRIPT=stopserver.sh

usage()
{
        echo "-----------------------"
        echo "Usage: $0 (stop|start|restart)"
        echo "-----------------------"
}

if [ -z $1 ]; then
        usage
fi

service_start()
{
        echo "Starting service '${SERVICE_NAME}'..."
        OWD=`pwd`
        cd ${SERVICE_DIRECTORY} && ./${SERVICE_STARTUP_SCRIPT}
        cd $OWD
        echo "Service '${SERVICE_NAME}' started successfully"
}

service_stop()
{
        echo "Stopping service '${SERVICE_NAME}'..."
        OWD=`pwd`
        cd ${SERVICE_DIRECTORY} && ./${SERVICE_SHUTDOWN_SCRIPT}
        cd $OWD
        echo "Service '${SERVICE_NAME}' stopped"
}

case $1 in
        stop)
                service_stop
        ;;
        start)
                service_start
        ;;
        restart)
                service_stop
                service_start
        ;;
        *)
                usage
esac
exit 0
avec un fichier startserver.sh qui lance mes serveurs + les b3 qui vont avec
et
un fichier stopserver.sh qui arrete mes serveurs et les b3
+ quelques petites choses comme sauvegarde des log et des bases de donnee...

exemple de startserver.sh

Code : Tout sélectionner

#! /bin/bash

su ptitbigorneau -c "screen -AmdS urt1 /home/servers/urbanterror/ioUrTded1.i386 + set dedicated 2 + set net_port 27960 +exec server.cfg"
su ptitbigorneau -c "screen -AmdS urt2 /home/servers/urbanterror/ioUrTded2.i386 + set dedicated 2 + set net_port 27961 +exec server2.cfg"

sleep 120
cd /home/servers/b3
su ptitbigorneau -c "screen -AmdS b31 python ./b3_run.py -c /home/servers/b3/b3/conf/b31.xml"
su ptitbigorneau -c "screen -AmdS b32 python ./b3_run.py -c /home/servers/b3/b3/conf/b32.xml"

exit 0
exmple stopserver.sh

Code : Tout sélectionner

#! /bin/bash

su ptitbigorneau -c "screen -S b31 -X quit"
su ptitbigorneau -c "screen -S b32 -X quit"
su ptitbigorneau -c "screen -S urt1 -X quit"
su ptitbigorneau -c "screen -S urt2 -X quit"

su ptitbigorneau -c "cp /home/ptitbigorneau/.q3a/q3ut4/urt1.log /home/ptitbigorneau/.q3a/q3ut4/log/urt1-`date +%Y-%m-%d-%H-%M`.log"
su ptitbigorneau -c "cp /home/ptitbigorneau/.q3a/q3ut4/urt2.log /home/ptitbigorneau/.q3a/q3ut4/log/urt2-`date +%Y-%m-%d-%H-%M`.log"
su ptitbigorneau -c "rm /home/ptitbigorneau/.q3a/q3ut4/*.log"
su ptitbigorneau -c "rm /home/ptitbigorneau/.q3a/q3ut4/*.log.*"

/usr/bin/apt-get clean
/usr/bin/apt-get update
/usr/bin/apt-get -y upgrade
/usr/bin/apt-get -y dist-upgrade
exit 0
-[TPF]-PtitBigorneau
http://www.PtitBigorneau.fr

Dark John
Messages : 136
Enregistré le : 30 juil. 2008, 23:50
Localisation : Martinique

Re: Script démarrage automatique

Message par Dark John » 19 août 2011, 15:31

Le script qui sert à lancer les autres, c'est aussi un .sh ?

Il sert à quoi le -c ?

A quoi sert la dernière partie :

Code : Tout sélectionner

/usr/bin/apt-get clean
/usr/bin/apt-get update
/usr/bin/apt-get -y upgrade
/usr/bin/apt-get -y dist-upgrade
exit 0
« Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. »

« Quand il n'y a plus de place en Enfer, les morts reviennent sur Terre. »

Avatar du membre
PtitBigorneau
Messages : 516
Enregistré le : 19 oct. 2008, 13:50
Localisation : brest

Re: Script démarrage automatique

Message par PtitBigorneau » 19 août 2011, 15:45

Code : Tout sélectionner

su ptitbigorneau -c "commande"
le -c sert a executer la commande qui suit

Code : Tout sélectionner

/usr/bin/apt-get clean
/usr/bin/apt-get update
/usr/bin/apt-get -y upgrade
/usr/bin/apt-get -y dist-upgrade
sous debian ou ubuntu cela sert a mettre a jour sa distribution

perso je l appelle sans extension ( juste 'server' )

je le place dans le dossier '/etc/init.d/'
-[TPF]-PtitBigorneau
http://www.PtitBigorneau.fr

Dark John
Messages : 136
Enregistré le : 30 juil. 2008, 23:50
Localisation : Martinique

Re: Script démarrage automatique

Message par Dark John » 19 août 2011, 15:51

PtitBigorneau a écrit :

Code : Tout sélectionner

/usr/bin/apt-get clean
/usr/bin/apt-get update
/usr/bin/apt-get -y upgrade
/usr/bin/apt-get -y dist-upgrade
sous debian ou ubuntu cela sert a mettre a jour sa distribution
Ouais bon, ça je m'en doutais un peu, mais je m'étonne de l'utilité de ces commandes dans le script ^_^

Edit : Je suis sous root, donc pour les commandes de startserver et stopserver j'adapte comment ?

Avec ça

Code : Tout sélectionner

#! /bin/bash

screen -AmdS URT /root/UrbanTerror/ioUrTded.x86_64 + set dedicated 2 + set net_port 27960 +exec server.cfg

sleep 120
screen -AmdS KIWI python ./root/Kiwi/run.py

exit 0

Code : Tout sélectionner

#! /bin/bash

screen -S KIWI -X quit
screen -S URT -X quit

cp /root/.q3a/q3ut4/games.log /root/.q3a/q3ut4/log/games-`date +%Y-%m-%d-%H-%M`.log
rm /root/.q3a/q3ut4/*.log
rm /root/.q3a/q3ut4/*.log.*

exit 0
Ça devrait marcher non ?
« Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. »

« Quand il n'y a plus de place en Enfer, les morts reviennent sur Terre. »

Avatar du membre
PtitBigorneau
Messages : 516
Enregistré le : 19 oct. 2008, 13:50
Localisation : brest

Re: Script démarrage automatique

Message par PtitBigorneau » 19 août 2011, 16:31

euh tu lance pas ton serveur urbanterror et ton bot en root quand meme ?

j espere que urbanterror et kiwi ne sont pas installer dans ton dossier /root

sinon je te conseil de les mettres dans ton dossier user (utilisateur)

et de les lancer etant qu utilisateur et pas etant que root


startserver.sh et stopserver.sh tu les mets dans ton dossier /root

Code : Tout sélectionner

#! /bin/bash

su user -c "screen -AmdS URT /chemin vers/UrbanTerror/ioUrTded.x86_64 + set dedicated 2 + set net_port 27960 +exec server.cfg"

sleep 120
cd /chemin vers/kiwi
su user -c "screen -AmdS kiwi python run.py"

exit 0
et

Code : Tout sélectionner

#! /bin/bash

su user -c "screen -S KIWI -X quit"
su user -c "screen -S URT -X quit"

cp /chemin vers/.q3a/q3ut4/games.log /chemin vers/.q3a/q3ut4/log/games-`date +%Y-%m-%d-%H-%M`.log
rm /chemin vers/.q3a/q3ut4/*.log
rm /chemin vers/.q3a/q3ut4/*.log.*

exit 0
-[TPF]-PtitBigorneau
http://www.PtitBigorneau.fr

Dark John
Messages : 136
Enregistré le : 30 juil. 2008, 23:50
Localisation : Martinique

Re: Script démarrage automatique

Message par Dark John » 19 août 2011, 16:57

PtitBigorneau a écrit :euh tu lance pas ton serveur urbanterror et ton bot en root quand meme ?

j espere que urbanterror et kiwi ne sont pas installer dans ton dossier /root

sinon je te conseil de les mettres dans ton dossier user (utilisateur)

et de les lancer etant qu utilisateur et pas etant que root


startserver.sh et stopserver.sh tu les mets dans ton dossier /root
Si si, c'est bien dans root. Pourquoi ? Quels problèmes puis-je rencontrer ?

Code : Tout sélectionner

#! /bin/bash

su user -c "screen -AmdS URT /chemin vers/UrbanTerror/ioUrTded.x86_64 + set dedicated 2 + set net_port 27960 +exec server.cfg"

sleep 120
cd /chemin vers/kiwi
su user -c "screen -AmdS kiwi python run.py"

exit 0
Le "cd" est obligatoire ?
En soi, ça me dérange pas trop car j'aurai pas besoin de le taper, mais j'aime les codes "simplifiés".


Je rajoute une chose, si je lance plusieurs serveurs, je suis obligé de dupliquer ioUrTded ?
Je peux pas faire :

Code : Tout sélectionner

su user -c "screen -AmdS URT1 /chemin vers/UrbanTerror/ioUrTded.x86_64 + set dedicated 2 + set net_port 27960 +exec server1.cfg"
su user -c "screen -AmdS URT2 /chemin vers/UrbanTerror/ioUrTded.x86_64 + set dedicated 2 + set net_port 27980 +exec server2.cfg"
et

Code : Tout sélectionner

screen -AmdS kiwi1 python run.py -c /home/user/Kiwi/kiwi/conf/kiwi1.cfg
screen -AmdS kiwi2 python run.py -c /home/user/Kiwi/kiwi/conf/kiwi2.cfg
« Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. »

« Quand il n'y a plus de place en Enfer, les morts reviennent sur Terre. »

Avatar du membre
PtitBigorneau
Messages : 516
Enregistré le : 19 oct. 2008, 13:50
Localisation : brest

Re: Script démarrage automatique

Message par PtitBigorneau » 19 août 2011, 17:29

on lance jamais un serveur en "root" pour des raisons de sécurité

le cd oui on va dire c est plus simple de ce placer dans le dossier kiwi

dans tes scripts tu peux mettre autant de lignes de commandes que tu veux
perso j ai fais des tests sur un gros serveur dedie pour lancer + de 100 serveurs de jeux :D
-[TPF]-PtitBigorneau
http://www.PtitBigorneau.fr

Dark John
Messages : 136
Enregistré le : 30 juil. 2008, 23:50
Localisation : Martinique

Re: Script démarrage automatique

Message par Dark John » 19 août 2011, 17:38

PtitBigorneau a écrit :on lance jamais un serveur en "root" pour des raisons de sécurité

le cd oui on va dire c est plus simple de ce placer dans le dossier kiwi

dans tes scripts tu peux mettre autant de lignes de commandes que tu veux
perso j ai fais des tests sur un gros serveur dedie pour lancer + de 100 serveurs de jeux :D
... J'ai trop la flemme de tout déplacer...
Comment on fait déjà en ligne de commande ?
« Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. »

« Quand il n'y a plus de place en Enfer, les morts reviennent sur Terre. »

Avatar du membre
Sparkwade
Membre de l'association
Membre de l'association
Messages : 1442
Enregistré le : 31 août 2008, 10:15

Re: Script démarrage automatique

Message par Sparkwade » 19 août 2011, 19:35

mv dossier_concerne dossier_cible

?

Dark John
Messages : 136
Enregistré le : 30 juil. 2008, 23:50
Localisation : Martinique

Re: Script démarrage automatique

Message par Dark John » 19 août 2011, 20:15

Ca marche pas le scipt....
Je redémarre le serveur, et nada, aucun screen n'est lancé quand je fais "screen -r"

Voici le contenu des fichiers :

Code : Tout sélectionner

#! /bin/bash
# Lancer URT
su urt -c "screen -m -d -S URT /home/urt/UrbanTerror/ioUrTded.x86_64 + set dedicated 2 + set net_port 27960 +exec server.cfg"
# Lancer BOT
sleep 120
cd /home/urt/LeelaBot
su urt -c "screen -S BOT php bot.php"
# Fin
exit 0
et

Code : Tout sélectionner

#! /bin/bash
# Fin des Screen
su urt -c "screen -S BOT -X quit"
su urt -c "screen -S URT -X quit"
# Enregistrement des Log
su urt -c "cp /home/urt/.q3a/q3ut4/games.log /root/.q3a/q3ut4/log/games-`date +%Y-%m-%d-%H-%M`.log"
su urt -c "rm /home/urt/.q3a/q3ut4/*.log"
su urt -c "rm /home/urt/.q3a/q3ut4/*.log.*"
# Fin
exit 0
Je précise que j'ai créé un utilisateur urt, puis j'y ai déplacé les dossier UrbanTerror, .q3a, LeelaBot, etc

Edit 1 : L'automatisation ne fonctionne pas alors que j'ai bien laissé les script start et stop dans /root...
J'utilise le script que tu m'as fourni pourtant...

Edit 2 : Le screen -r permet de vérifier le lancement des application.. quand on est en ssh sous l'utilisateur urt XD

Edit 3 : Sinon le script de start marche à moitié, URT c'est bon, mais le BOT non...
« Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. »

« Quand il n'y a plus de place en Enfer, les morts reviennent sur Terre. »

Avatar du membre
Sparkwade
Membre de l'association
Membre de l'association
Messages : 1442
Enregistré le : 31 août 2008, 10:15

Re: Script démarrage automatique

Message par Sparkwade » 19 août 2011, 21:39

As-tu essayé de lancer le bot à la main grâce à screen -S BOT php bot.php ?

screen -ls permet de lister l'ensemble des screens ouverts pour l'utilisateur présent.

Avatar du membre
Xawou
Messages : 322
Enregistré le : 13 oct. 2008, 12:58

Re: Script démarrage automatique

Message par Xawou » 19 août 2011, 21:45

Dark John a écrit :Edit 3 : Sinon le script de start marche à moitié, URT c'est bon, mais le BOT non...
Essaie de remplacer cette ligne :

Code : Tout sélectionner

su urt -c "screen -S BOT php bot.php"
par celle-ci (ajout de 2 options) :

Code : Tout sélectionner

su urt -c "screen -mdS BOT php bot.php"
Mécanicien Urban Terror France

Avatar du membre
PtitBigorneau
Messages : 516
Enregistré le : 19 oct. 2008, 13:50
Localisation : brest

Re: Script démarrage automatique

Message par PtitBigorneau » 19 août 2011, 21:59

non tu dois taper ca en root

Code : Tout sélectionner

update-rc.d server start 20 2 3 4 5 . stop 17 0 1 6 .
(le point a la fin est important)

et pour tes screens moi perso j utilise ca comme option "screen -AmdS"
-[TPF]-PtitBigorneau
http://www.PtitBigorneau.fr

Avatar du membre
linkboss
Référent outil (Leelabot)
Messages : 1633
Enregistré le : 28 déc. 2008, 19:22
Localisation : Pas en Bretagne !

Re: Script démarrage automatique

Message par linkboss » 19 août 2011, 22:29

PtitBigorneau a écrit :non tu dois taper ca en root

Code : Tout sélectionner

update-rc.d server start 20 2 3 4 5 . stop 17 0 1 6 .
(le point a la fin est important)

et pour tes screens moi perso j utilise ca comme option "screen -AmdS"
"update-rc.de server defaults", ça rend pas grosso modo les mêmes résultats ?
<newboy> si t aurais mon fils j vé te mettre un confiture
LeelaBot, un autre bot d'administration de vos serveurs UrT.
La HD sarox

Répondre