Question sur les logs + lancement auto


Fixthebug

Messages recommandés

Posté(e)

Salut all.

Voila j'ai deux petits soucis

1° Avec les logs je voudrais faire tourne au moins deux serveurs sur une machine.

Mais j'aimerai que les logs de chaque serveur s'enregistre a deux endroits differents du style logs/27016 pour le serveur1 et logs/27017 pour le serveur2.

J'ai chercher si y'avais pas une commande mais je trouve pas si qq la connait je suis prenneur.

2° Avec le lancement auto au demmarrage de linux.

Alors j'ai deja essayer plein de truc et j'ai toujours pas trouver la bonne methode, est ce que qq a une methode? Je voudrais que les serveurs ce lance auto au demmarage de linux.

En ce moment j'utilise un script qui ce lance auto au demmarage serv1.sh et serv2.sh

serv1.sh :

#!/bin/sh

cd /usr/steam/hlds_l/

screen -A -m -d -S serv1 ./hlds_run -console -game cstrike +map de_dust2 +maxplayers 16 -port 27016 -autoupdate ....

serv2.sh:

#!/bin/sh

cd /usr/steam/hlds_l/

screen -A -m -d -S serv2 ./hlds_run -console -game cstrike +map de_dust +maxplayers 16 -port 27017 -autoupdate ...

Le tout dans /etc/init.d

Les serveur ce lance mais le screen ne fonctionne pas si je fais screen -list:

No Sockets found in /root/tmp.

Voila si qq peut m'aider ce serait cool.

Posté(e)

Bonjour,

Synaid m'a laissé un petit message pour te donner quelques pistes.

Moi j'ai des serveurs de jeux qui tournent sur des machines linux et j'ai eut le meme problème que toi il fut un temps :

1) Pour les logs, tu peut le faire en créant deux répertoires CS, ou en jouant avec les liens symboliques (la méthode que j'utilise). Dans le cas des liens symboliques tu utilises la commande suivante :

ln -s origine destination (ex : ln -s /home/trucmuche/fichier /home/trucmuche/fichier2)

Avec ca fichier2 = fichier, sauf que fichier2 prends pas la place de fichier et fichier2 se met automatiquement a jour.

Donc avec ces commandes tu peut creer ton repertoire hlds, et entre guillemet le clonés avec les liens symboliques et garder en dur uniquement les parametres dont tu as besoin (server.cfg / mapcycle/ amx/ motd /banlist....)

Ps : la commande pour les logs, je l'ai pas trouver non plus, mais sinon y'a un truc qui s'apelle psychostreamer qui peut surement le faire, perso je l'ai utiliser en distribue pour faire un serveur qu'avec les logs, mais ca doit pouvoir se tenter en local. Va voir le site de psychostats.

2) Déjà lance pas ton serveur en root ;) cree un utilisateur spécifique pour ca genre ton pseudo, ou servcs. Et fait toutes les manipulations en ligne de commande avec ton user creer specialement pour eviter les problemes de permissions.

Pour le boot auto, j'ai pas de solutions miracle, moi j'ai trouver une solution de contournement, j'ai créer un petit script qui sert a redemarrer automatiquement les serveurs en cas de crash. Il s'execute toutes les 2 minutes pour verifier si le serveur est toujours up. Dans le cas ou il ne l'est pas, il le redemarre.

Le script est pas tres elabore et a ete fait plutot a l'arrache, alors on se moque pas ;)

#!/bin/sh

ps -x | grep "SCREEN -DmS nomduscreen" >>test

if /bin/grep -E "SCREEN -DmS nomduscreen" /home/user/test > machin ; then

echo "plouf"

rm -rf test machin

exit

else

echo "aie"

rm -rf test machin

cd /home/user/cs1/hlds_l-steam/

screen -DmS nomduscreen ./hlds_run -game cstrike +map de_aztec +map de_aztec +maxplayers 17 +port 27015 -pidfile pid.txt +sys_ticrate 100

fi

exit

En gros il fonctionne comme ca :

Il cherche dans la liste des processus actif si il y'a un serveur qui tourne avec le screen nomduscreen, il met le resultat dans le fichier test.

Ensuite il verifie dans le fichier test si le screen existait reellement, si c'est le cas il ecrit plouf a l'écran (rien de tres utile, maisquand tu le lance a la main tu peut voir le resultat) et supprime le fichier test et machin, dans le cas contraire il continue sur la suite.

Alors il ecrit aie a l'ecran, supprime test et machin, et se rend dans le repertoire pour lancer le serveur, et lance le screen donc le serveur, puis termine le script.

Sachant que l'inconvénient de ce script c'est qu'il reste un process résiduel.

Ensuite tu utilise le CRON pour programmer l'execution automatique du script a l'intervalle de temps désiré. Par ex tout les 2 min, ainsi meme quand ta machine redemarrera ben il se relancera ton serveur :)

Et si tu veut, tu peut creer un script qui redemarreton serveur tout les matins, pour eviter certains bugs d'utilisation excessive de memoire :

#!/bin/sh

screen -r cs1 -X quit

cd /home/finger/cs1/hlds_l-steam/

screen -DmS cs1 ./hlds_run -game cstrike +map de_aztec +map de_aztec +maxplayers 17 +port 27015 -pidfile pid.txt +sys_ticrate 100

done

J'espere que cette modeste contribution pourras t'aider.

Finger

Posté(e)

Coucou :)

sinon pour ta signature enleve les www sur ta deuxieme adresse ca marche pas sinon :)

Finger

Posté(e)

Ben a mon humble avis il a oublié son topic ou il y repondra pas .. ca aurait ete sympa d'avoir son avis :-/

Posté(e)

bon ben voila j'ai tester mais j'en viens a peut pres au meme resultat le serveur demarre sans probleme mais je n'arrive pas a me ratacher au screen il n'en trouve pas ou quand il en trouve il est dead.

Pour les logs, je regarderai plus tard.

Si qq a une idee je suis preneur.

Posté(e)

[citation=35510,0,15][nom]Fixthebug a écrit[/nom]bon ben voila j'ai tester mais j'en viens a peut pres au meme resultat le serveur demarre sans probleme mais je n'arrive pas a me ratacher au screen il n'en trouve pas ou quand il en trouve il est dead.

Pour les logs, je regarderai plus tard.

Si qq a une idee je suis preneur.[/citation]

ouais

Posté(e)

Ben tu le lances sous quel utilisateur ton screen ? car quand tu le lances sous un utilisateur, tu doit le rouvrir avec le meme sinon ca amrche pas

de plus essayes de le lancer sans screen voir si c'est pas ton cs qui plante.

Posté(e)

j'ai creer un utilisateur admin et dans la ligne de commande j'ai ajouter

sudo -u admin pour lancer avec admin et non root et lorsque je me connecte en ssh j ouvre une session en tant que admin et ou il ne voit pas de screen ou il me dis qu il est dead mais le processus est encore actif. bizarre

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.