Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[gentoo]Creer un script temporisé ....
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Mon Jul 21, 2008 8:05 pm    Post subject: [gentoo]Creer un script temporisé .... Reply with quote

Bonjour, je cherche à creer un script temporisé sous gentoo .
voila l'application par une page php je lance un script mais je voudrais que se script s'arrete tous seul au bout de 3 heures, je viens de faire quelques recherchs à gauche et a droite et etant un "noob" sur la programmation j'aurais besoin d'un serieu coup de main pour comprendre comment faire .

Pourriez vous me donnez quelques tuyaux merci beaucoup .


Last edited by claudecs on Tue Jul 22, 2008 8:56 pm; edited 1 time in total
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Mon Jul 21, 2008 8:53 pm    Post subject: Reply with quote

Salut et bienvenue ! Peux-tu mettre ton titre du topic en conformité avec les conventions de notre forum s'il te plait ? Merci :)

Pour ton script, soit t'implémentes ça dedans, avec un timer ou je ne sais quoi qui le tue au bout de 3h... soit tu fais ça par une tâche cron qui va tuer le script si sa durée d'execution dépasse 3h...
Je laisse qq'un d'autre détailler mieux que ça, j'ai pas tellement de temps là :P
Back to top
View user's profile Send private message
Bapt
Veteran
Veteran


Joined: 14 Apr 2003
Posts: 1152
Location: Paris

PostPosted: Mon Jul 21, 2008 9:10 pm    Post subject: Reply with quote

Avec zsh tu peux jouer avec le module datetime pour etre précis, sinon ce qu'il faut que tu fasses c'est un script dont au début il récupère son pid,
dans ton script tu fork avec un sleep qui attend 3h et kill le processus père.

genre
PID=$$
(sleep 10800 && kill -15 ${PID})&
le reste de ton script
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Tue Jul 22, 2008 8:04 am    Post subject: Reply with quote

Avec le même état d'esprit, j'avais écris un script Bash (Shell ?) similaire :

wak : Wait And Kill:
#!/bin/bash

if [ -z "$2" ]
then
    echo "Usage: wak command timeout"
    exit 64
fi
($1
# Just to let the time to the sleep $2 to initiate in case of an almost instantenous execution of $1
sleep 1
killall sleep)&
sleep $2 && pkill -f "$1" && exit 1
exit 0


Tu enregistres ça dans un répertoire de ta variable PATH (typiquement /usr/bin), le rends exécutable (chmod a+x SCRIPT) et l'appelle avec en première argument ta commande (à mettre entre guillemets si elle est en plusieurs mots) et en second argument le temps alloué (e.g., 10s, 2m, 3h). Cette commande renvoie 0 si la commande s'est terminée avant le temps imparti et 1, sinon. C'est très utile à l'intérieur d'un script (si la commande c'est terminée, fais ça sinon fais ça, ou encore exécute ces commandes jusqu'à ce que l'une d'entre elle se termine à temps).

@Bapt
Sauf erreur de ma part, dans le code que tu proposes, le sleep 10800 continue à tourner même si la commande s'est terminée. Ainsi, si le timeout n'est qu'une sécurité utilisée alors que des milliers de commandes (normalement rapides) sont exécutées, tu vas avoir autant de sleep qui traînent et autant de kill qui vont échouer. Je me trompe ?


Last edited by Magic Banana on Tue Jul 22, 2008 10:45 am; edited 1 time in total
Back to top
View user's profile Send private message
Bapt
Veteran
Veteran


Joined: 14 Apr 2003
Posts: 1152
Location: Paris

PostPosted: Tue Jul 22, 2008 10:15 am    Post subject: Reply with quote

@Magic Banana, pas faux, pour sela il suffira de rajouter un kill -15 ${PID} tout à la fin du script, comme ça si il a finit son execution, il tu se tue, donc tue le fork.
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Tue Jul 22, 2008 1:28 pm    Post subject: reponse Reply with quote

Bonjour et tous d'abord merci de participer çà se poste ;
Geekounet je viens de lire le topics desolé je vais essaye de préciser un peu plus .

Donc voila j'ai un script de lancement pour un serveur de jeu sous gentoo, je suis chez ovh et j'ai un serveur dedié installé avec leur release ovh 2 en 32 bits .
au passage je met la totalité du script de lancement ici ici car il fonctionne niquel !
Code:
#!/bin/sh
#############################################
##     Script de lancement des serveur     ##
#############################################

#############################################
##          Début des variables            ##
#############################################

# Nom de l'utilisateur
SRCDS_USER=""

# Nom du screen
SRCDS_NAME=""

# Binaire du serveur
SRCDS_BIN="./srcds_run"

# Repertoire du serveur
SRCDS_PATH=""

# Options de lancement

SRCDS_OPTS="-game cstrike +maxplayers 32 +map zm_little_city_v2 -port 27045 -tickrate 66 -pingboost 3 +fps_max 101 -command update"

# Ligne de commande pour l'update
#STEAM_UPDATE="./steam -command update -game "Counter-Strike Source""

#############################################
##            Fin des variables            ##
#############################################
usage() {
    echo "---------------------------------------------------------------------"
    echo "Usage: ${SRCDS_NAME} (stop|start|restart|update|patch)"
    echo "---------------------------------------------------------------------"
    exit 2
}

if [ -z $1 ]; then
    usage
fi

srcds_start() {
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Debut de la sequence"
    echo "---------------------------------------------------------------------"
    #OWD=`pwd`
    cd ${SRCDS_PATH}
    #su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}
    #cd $OWD
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Fin de la sequence"
    echo "---------------------------------------------------------------------"
}

srcds_stop() {
    echo "---------------------------------------------------------------------"
    echo "Arret du serveur : Debut de la sequence"
    echo "---------------------------------------------------------------------"
    #su ${SRCDS_USER} -c "screen -dr ${SRCDS_NAME} -X quit"
screen -dr ${SRCDS_NAME} -X quit
    echo "---------------------------------------------------------------------"
    echo "Arret du serveur : Fin de la sequence"
    echo "---------------------------------------------------------------------"
}

srcds_restart() {
    echo "---------------------------------------------------------------------"
    echo "Reboot du serveur : Debut de la sequence"
    echo "---------------------------------------------------------------------"
    srcds_stop
    srcds_start
    echo "---------------------------------------------------------------------"
    echo "Reboot du serveur : Fin de la sequence"
    echo "---------------------------------------------------------------------"
}

srcds_update() {
    echo "---------------------------------------------------------------------"
    echo "Reboot du serveur avec mise a jour : Debut de la sequence"
    echo "---------------------------------------------------------------------"
    srcds_stop
    OWD=`pwd`
    cd $SRCDS_PATH
    su ${SRCDS_USER} -c "${STEAM_UPDATE}"
    cd $OWD
    srcds_patch
    srcds_start
    echo "---------------------------------------------------------------------"
    echo "Reboot du serveur avec mise a jour : Fin de la sequence"
    echo "---------------------------------------------------------------------"
}

srcds_patch () {
   echo "---------------------------------------------------------------------"
   echo "Lancement du patch pour Gameinfo.txt : Debut de la sequence"
   echo "---------------------------------------------------------------------"
   echo "Resultat :"
   ${SRCDS_PATH}dod/gameinfopatch.sh
   echo "Copie du fichier motd.bak en motd.txt"
   rm -f ${SRCDS_PATH}dod/motd.txt
   cp ${SRCDS_PATH}dod/motd.bak ${SRCDS_PATH}dod/motd.txt
   echo "Attribution des droits"
   chown ${SRCDS_USER} ${SRCDS_PATH}dod/motd.txt
   chown ${SRCDS_USER} ${SRCDS_PATH}dod/gameinfo.txt
   echo "---------------------------------------------------------------------"
   echo "Fin du patch pour Gameinfo.txt : Fin de la sequence"
   echo "---------------------------------------------------------------------"
}

case $1 in
    stop)
        srcds_stop
    ;;
    start)
        srcds_start
    ;;
    restart)
        srcds_restart
    ;;
    update)
        srcds_update
    ;;
    patch)
        srcds_patch
    ;; 
    *)
        usage
esac

exit 0


Pour ma team je souhaite le mettre à disposition quelques serveur war qu'il demarre d'eux même d'un page en php sécurisé sur notre site .
Pour cela j'ai l'habitude d'inserer ce code : (qui marche impec aussi lol)
Code:


<?php

if (!empty($_POST)) { 
    echo 'Le serveur '; 
    if (isset($_POST['bouton2'])) { 
        echo '1 vas etre Rebotter';
        system("bash /etc/init.d/serveur1.sh restart" );
    } elseif (isset($_POST['bouton3'])) { 
        echo '1 vas etre Arreter';
      system("bash /etc/init.d/serveur1.sh stop" );
   } elseif (isset($_POST['bouton4'])) { 
        echo '1 vas etre Mis à jours';
      system("bash /etc/init.d/serveur1.sh update" );    
   } else { 
        echo '1 vas etre Démarrer';
      system("bash /etc/init.d/serveur1.sh start" );
    } 
 }

?><form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">

 <label></label>
 <p align="center"><strong>Administration des Serveurs </strong></p>
  <p>
    <input type="SUBMIT" name="bouton2" value="Rebooter">
    <input type="SUBMIT" name="bouton3" value="Arreter">
    <input type="SUBMIT" name="bouton4" value="Mise à jour">
   
   
   
    <em><strong>Le Serveur  est</strong></em>
    <?php

$port = *****;
$ip = "***.***.***.***";

$sock = @fsockopen($ip, $port, $num, $error, 5);
if (!$sock)
    echo '<font color="#CC0000"><img src="http://*****/offline.png" alt="offline" width="32" height="32"></font>';
else{
    echo '<font color="#00CC00"><img src="http://*****/online.png" alt="online" width="32" height="32"></font>';
    fclose($sock);
}
?>
  </p>
  <p>&nbsp;</p>
  </form> 


Donc pour lancer mon serveur si je rajoute un script intermediare du style
Code:

PID=$$
(sleep 10800 && kill -15 ${PID})&
/etc/init.d/mon script de lancement.sh start

et à la fin de mon script de lancement je rajoute ceci :
Code:

-15 ${PID}


ais je bien tous compris, comme je vous es dit je suis nouvele untilisateur linux donc pardonner ses question surement tres clasique pour vous.
Et merci encore pour votre aide preciseuse .
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Tue Jul 22, 2008 1:39 pm    Post subject: Reply with quote

Merci magic banana toi tu me onseillerai donc de faire se script
Code:

#!/bin/bash

$1="su ***** -c '/etc/init.d/mon script de lancement.sh start"
$2="10800"

if [ -z "$2" ]
then
    echo "Usage: wak command timeout"
    exit 64
fi
($1
# Just to let the time to the sleep $2 to initiate in case of an almost instantenous execution of $1
sleep 1
killall sleep)&
sleep $2 && pkill -f "$1" && exit 1
exit 0

que je collerai dans mon /usr/bin et qui se lance tous seul ?

par avance merci
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Tue Jul 22, 2008 1:51 pm    Post subject: Reply with quote

Ton script est en Shell POSIX (/bin/sh). Ce que te propose Bapt nécessite zsh. Donc à moins d'installer zsh et de changer le "#!", ça ne va pas. Ce que je te propose a été testé avec Bash qui est très certainement le Shell qui interprète ton script (Bash étant une dépendance indispensable à Gentoo). Tu peux donc utiliser le morceau de code que je t'ai filé :

Si tu veux l'intégrer "en dur", cela donne :
Code:
(/etc/init.d/mon script de lancement.sh start
sleep 1
killall sleep)&
sleep 3h && pkill -f "/etc/init.d/mon script de lancement.sh start"


Mais tu peux aussi suivre les instructions de mon précédent message (copie tel quel le code que je t'ai donné) et simplement ajouter en fin de ton script :
Code:
wak "/etc/init.d/mon script de lancement.sh start" 3h
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Tue Jul 22, 2008 1:52 pm    Post subject: Reply with quote

Je viens de lui coller ca dans mon script, tous demarre mais rien ne s'arrete au bout de 60 seconde .
une idée ? qu'es je mal ecris ?
Code:

srcds_start() {
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Debut de la sequence"
    echo "---------------------------------------------------------------------"
   
PID=$$
(sleep 60 && kill -15 ${PID})&
#OWD=`pwd`
    cd ${SRCDS_PATH}
    #su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}
    #cd $OWD
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Fin de la sequence"
    echo "---------------------------------------------------------------------"
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Tue Jul 22, 2008 2:02 pm    Post subject: en dure ? Reply with quote

Magic banana en dure cela veut dire dans ma page php ?
comme ceci ?
Code:

        echo '4 vas etre Rebotter';
      system("bash (/etc/init.d/serveur4.sh start
sleep 1
killall sleep)&
sleep 60s && pkill -f "/etc/init.d/serveur4.sh start"" );


car ca me plantre ma page php plutot qu'autre chose ?

Que veut dire en dure
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Tue Jul 22, 2008 2:16 pm    Post subject: suite Reply with quote

magique je viens de creer ce script sous usr/bin je l'ai nomé timer.sh je l'ai chmoder ;-)
Code:


#!/bin/bash

if [ -z "$2" ]
then
    echo "Usage: wak command timeout"
    exit 64
fi
($1
# Just to let the time to the sleep $2 to initiate in case of an almost instantenous execution of $1
sleep 1
killall sleep)&
sleep $2 && pkill -f "$1" && exit 1
exit 0


wak "/etc/init.d/serveur4.sh start" 60s


malheureusement au bout de mes 60 secondes il tourne toujours ...

merci pour vos aide à un pauvre noob que je je suis ! (faut t'il rebooter mon serveur pour prendre en compte se nouveau script ?)
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Tue Jul 22, 2008 2:22 pm    Post subject: Re: reponse Reply with quote

claudecs wrote:
Geekounet je viens de lire le topics desolé je vais essaye de préciser un peu plus .

Oui mais il faut quand même que tu modifies le titre (en éditant ton premier post) ;)
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Tue Jul 22, 2008 2:25 pm    Post subject: Reply with quote

Le 'wak "COMMANDE" 60s' doit être placé à l'intérieur de srcds_start (et /usr/bin/wak ne doit pas contenir de ligne 'wak "/etc/init.d/serveur4.sh start" 60s'). Le problème est que je te comprends pas trop. Quelle est la COMMANDE, lancée dans srcds_start, qui doit être stoppée au bout de 60s ?
Back to top
View user's profile Send private message
Bapt
Veteran
Veteran


Joined: 14 Apr 2003
Posts: 1152
Location: Paris

PostPosted: Tue Jul 22, 2008 6:32 pm    Post subject: Reply with quote

Ce que j'ai proposé ne nécessite pas zsh du tout c'est tu posix normal.
J'ai parlé de zsh pour parler du module datetime pour le temps, mais j'ai proposé une solution posix qui fonctionnera avec n'importe quel shell.
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Tue Jul 22, 2008 7:49 pm    Post subject: Reply with quote

Bapt wrote:
Ce que j'ai proposé ne nécessite pas zsh du tout c'est tu posix normal.
J'ai parlé de zsh pour parler du module datetime pour le temps, mais j'ai proposé une solution posix qui fonctionnera avec n'importe quel shell.


Merci alors de m'avoir fait découvrir "$$". Je ne connaissais pas et pensais que c'était un ajout de zsh. :D
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Tue Jul 22, 2008 9:00 pm    Post subject: suite Reply with quote

La commande que je veut stopper au bou d'un certain temps c'est celle ci

Quote:

#su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}


En gros le lancement de mon serveur css commander au dessus doit se stopper toute seule dans 3 heures .

donc j'ai enregistrer ton script comme il est c'est a dire :
Code:

#!/bin/bash

if [ -z "$2" ]
then
    echo "Usage: wak command timeout"
    exit 64
fi
($1
# Just to let the time to the sleep $2 to initiate in case of an almost instantenous execution of $1
sleep 1
killall sleep)&
sleep $2 && pkill -f "$1" && exit 1
exit 0


Sous le nom de timer.sh

Et si je comprend bien il faut que je lance mon script avec la commande wak . Mon script *.start est lancé par un epage php donc je la modifi en rajoutant ta commande .
Code:

echo '4 vas etre Démarrer';
      system("bash wak "/etc/init.d/serveur4.sh start" 60s" );

je test ca tout de suite merci encore
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Tue Jul 22, 2008 9:29 pm    Post subject: suite Reply with quote

Bon he bien toujours rien ma facon de l'ecrire doit planter ma page php .
Je l'ai lancer par putty en direct mais voila ce que cela me marque .
Code:

ns****** ~ # wak "/etc/init.d/serveur4.sh start" 60s
-bash: wak: command not found


Désoleé je doit etre lourding mais j'ai du loupé quelque chose/

:cry:
merci
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Tue Jul 22, 2008 9:50 pm    Post subject: Reply with quote

Commençons par quelque chose de simple : lorsque tu entres une commande, l'interpréteur (le Shell, Bash dans ton cas) cherche dans les répertoires de ta variable PATH (notamment /usr/bin) un fichier exécutable ayant le nom de la commande. Ainsi, si tu as appelé le fichier "timer.sh", il faut l'exécuter avec ce nom et non pas avec "wak" (qui était simplement le nom de fichier que j'avais personellement choisi).

Ensuite, si j'ai tout bien compris, ton PHP lance un script d'initialisation qui, lui même, exécute une commande qui doit être stoppée au bout de 3h (à moins qu'elle ne se termine avant). C'est donc dans le script d'initialisation (plus précisément dans la fonction srcds_start) que tu dois utiliser timer.sh :
Code:
srcds_start() {
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Debut de la sequence"
    echo "---------------------------------------------------------------------"
    OWD=`pwd`
    cd ${SRCDS_PATH}
    timer.sh "su ${SRCDS_USER} -c screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}
    screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}" 3h
    cd $OWD
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Fin de la sequence"
    echo "---------------------------------------------------------------------"


Le code PHP initial devait rester inchangé.

Ceci dit, je ne saisis pas les subtlité de ce que tu fais (et n'ai jamais vraiment cherché à comprendre ce que fait la commande screen :oops: ).
Back to top
View user's profile Send private message
NEOxAKIRA
Guru
Guru


Joined: 20 May 2007
Posts: 302
Location: France

PostPosted: Wed Jul 23, 2008 5:22 am    Post subject: Reply with quote

<HS>
Iop claudecs, je mettais poser la question de savoir si un serveur dédié n'étais pas mieux qu'un serveur verygames ou autre pour counter striker, Day of defeat et autre, donc pourrait tu préciser quelle offre tu as chez ovh et si ton serveur Counter-Strike Source tourne bien ? (combien de slot, combien de ticks)
Et il y a que ton serveur steam qui tourne ou aussi un apache par exemple pour heberger un site web en rapport avec le serveur...
</HS>

Merci
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Wed Jul 23, 2008 11:39 am    Post subject: suite Reply with quote

Merci magic banana pour ton aide j'essaye ca ce soir .
Ps j'avais essayer de lancer par timer.sh lol je me suis douté que wak etait perso a toi mais n'en etant pas sur je te remerci de me l'avoir precisé . en effet ce monde de linux en prog pur etan pour moi nouveau .

NEOxAKIRA, je m'occupe de serveur depuis maintenant plus de cinq ans je suis passé pas un qui as eté racheter par verygames par nitroserv et par verygame.
je suis chez ovh depuis maitenant 3 ans avec 3 differents serveur installé en gentoo ovh release .
Sache tous d'abord que les grosse team passe tous par ovh que verygame à aussi ses serveurs chez verygames .
Ensuiste pour faire se que j'ai actuell0ment pour moin de 800 euros me couterais 2800 chez ovh ;
Mais j'attire ton attention sur les plus que fournis ovh quand tu ne connais pas le monde du serveur de jeu ainsi que la complexité à tous installé (ftp mirroir pour les map) les dll auto les modes d'introduction de jeu ainsi que la prog en linux .

voila si tu as d'utres question c'est avec plaisir que j'y repondrais .
ps mon offre sur ovh actuel je suis en superplan .
Back to top
View user's profile Send private message
NEOxAKIRA
Guru
Guru


Joined: 20 May 2007
Posts: 302
Location: France

PostPosted: Wed Jul 23, 2008 4:50 pm    Post subject: Reply with quote

c'etait juste comme ça, car souvant en jouant je voit des gars qui galere a configurer leur serveur car ils connaissant pas grand chose en info, et je me suis dit que quand tu connais, surtout que c'est pas très dur a mettre en place un serveur de jeux, tu devais pouvoir obtenir de meilleur performance sur un serveur dédié et en plus heberger d'autre service que par un tiers fournissant que des serveur de jeux dont tu pas modifié autre chose que le serveur...

c'est étonnant car il doit pas falloir un très gros ordi pour faire tourner un serveur de counter strike, et ovh fourni une connexion de 100Mbit/s, je me disais meme qu'il doit être possible de faire tourner plusieurs serveurs de jeux sur un meme dédié sans dépenser plus d e100€ par mois et y ajouter apache et une bdd.
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Wed Jul 23, 2008 6:56 pm    Post subject: suite Reply with quote

NEOxAKIRA
En effet c'est assez simple quand tu prend le temps de comprendre .
Pour mon cas donc beaucoup moins que 100 euros par moi j'ai installé dessus :
1 serveur 32 slots tick 100 fun
1 serveur 32 slots tick 100 gungame
1 serveur 32 slots tick 66 zombie
1 serveur 12 slots war
1 psychostats
1 teamspeak
1 serveur miroir pour mes fichiers à dll de plus de 500 maps

donc de quoi faire pas mal de frag non ! aucun lag constater pourtant les serveur son souvent frequenté .
Cherche Nltfrance sur google ca te donneras une petite idée .
ps pour 100 euros par moi tu passe sur du 1 gb de transfert illimité !
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Wed Jul 23, 2008 9:30 pm    Post subject: suite Reply with quote

magic babana mon script original est :
Code:

srcds_start() {
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Debut de la sequence"
    echo "---------------------------------------------------------------------"
#OWD=`pwd`
    cd ${SRCDS_PATH}
    su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}
    #cd $OWD
    echo "---------------------------------------------------------------------"
    echo "Lancement du serveur : Fin de la sequence"
    echo "---------------------------------------------------------------------"


j'ai fait ca
Code:

    timer.sh "#su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}" 60s
 


ou ceci
Code:

     #timer.sh "su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}" 60s

et ceci
Code:

  timer.sh "su ${SRCDS_USER} -c "screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}"
screen -AmdS ${SRCDS_NAME} ${SRCDS_BIN} ${SRCDS_OPTS}" 60s
 


rien de rien il ne demarre pas ...

j'ai meme essayer en direct et voici la reponce
Code:


ns***** ~ # timer.sh "/etc/init.d/serveur4.sh start" 60s
: Aucun fichier ou répertoire de ce type
ns***** ~ #


petite info j'ai lancé mon fichier timer.sh en modifiant #!/bin/bash par #!/bin/sh pour qu'il soit reconnu et le nom en testwak .
ca m'as donné ceci
Code:

ns****** ~ # testwak "serveur4.sh start" 10s
: command not foundine 2:
---------------------------------------------------------------------
Lancement du serveur : Debut de la sequence
---------------------------------------------------------------------
---------------------------------------------------------------------
Lancement du serveur : Fin de la sequence
---------------------------------------------------------------------
/usr/bin/testwak: line 12: 16213 Complété                sleep $2

ca l'as démarrer mais pas stopper au bout de 10 seconde


Last edited by claudecs on Wed Jul 23, 2008 10:55 pm; edited 1 time in total
Back to top
View user's profile Send private message
claudecs
n00b
n00b


Joined: 21 Jul 2008
Posts: 15

PostPosted: Wed Jul 23, 2008 9:37 pm    Post subject: suite Reply with quote

ps une petite question mon fichier apres un chmod +x /usr/bin/testwak marche impec
par contre quand je le modifi et que je veut le relancer il me met
Code:

-bash: /usr/bin/testwak: /bin/sh^M: bad interpreter: Aucun fichier ou répertoire de ce type

meme si je lui recolle un nouveau chmod +x /usr/bin/testwak
que doit je faire pour le redeclarer dans se ca svp ?

merci
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1912
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Wed Jul 23, 2008 10:00 pm    Post subject: Reply with quote

Je ne sais pas avec quel éditeur de texte tu as copié le code mais il t'a collé des '^M' à la fin des lignes visiblement. Enlève ces '^M' (ou refais le copier-coller du script) avec un vrai éditeur de texte (e.g., emacs :wink: ).

Le '#' commence un commentaire en Shell. Il ne faut donc pas le mettre !

Tu as des soucis avec des guillemets sensés entourer d'autres guillemets. Naturellement le premier guillemet "interne" ferme le premier guillemet externe et ça ne peut pas aller. Tu pourrais donc faire de ta commande à temporiser un nouveau script (dans un fihier à part que tu n'oubli pas de rendre exécutable) que tu appelleras (par son nom de fichiers) en premier argument de timer.sh (le second étant, comme tu l'as déjà compris, "3h"). C'est le premier truc qui me vient et il y a sûrement plus élégant comme méthode (et moin compliqué car ce script devra prendre en argument toutes les varibles qu'il utilise). Les autres ?

Pour tester timer.sh facilement, essaie donc cela :
Code:
$ timer "sleep 10s" 1s


Si ça s'arrête au bout d'une seconde c'est que c'est bon. :wink:
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum