Screen en script linux

Résolu
Bonjour,

J'administre actuellement un serveur de jeu, installer sous Debian 5. Je voulais, par un soucis de simpliciter, au lieu de lancé toutes les commandes à la main pour lancer chaque serveur de jeu dans des screens, écrire un script me permettant de les lancer tous :

Actuellement je tape toutes les commandes pour démarrer les serveurs les uns après les autres

Ce que je demande c'est par exemple créer un fichier du genre start_server.sh que je pourrais éxécuter et qui e lancerai tout les serveurs automatiquement, dans des screens séparés.

Par exemple, pour mon serveur cod4, voici la commande que j'utilise actuellement :
screen -dmS cod4 ./cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2

Qui plus est, je souhaiterai (j'ai 5 serveur de jeu et un 6ème à venir) que dans ce script tous les serveurs de jeu se lance les uns après les autres, mais si possible avoir une petite tempo entre chaque serveur, histoire de ne pas surchargé le serveur avec 5 serveurs de jeux qui démarre en même temps...

Merci d'avance à tous ceux qui me répondront, je reste bien sur à votre entière disposition pour toute informations complémentaires...

Cordialement,

14 réponses

  1. Contributeur
    et si tu vas dans ../game/cod4
    et exécutes, comme au post #1
    screen -dmS cod4 ./cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2
    1. Contributeur
      hello
      tu peux mettre tes commandes avec un délai entre, dans le fichier start_server.sh, que tu rends exécutable avec chmod +x start_server.sh

      screen -dmS cod4 ./cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2
      sleep 5
      commande
      sleep 5
      etc

      pour l'exécuter: ./start_server.sh
      1. oki mais le pb c'est que lorsque je test juste en mettant une commande de base par exemple là juste la commande pour lancé le serveur cod4 ça ne fait rien du tout.

        Voici mon fichier actuel :

        #!/bin/bash

        screen -dmS cod4public ../game/cod4/cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2

        le chemin d'accès est le bon mon utilisiteur (adminjeux) et bien propriétaire du dossier game pas de problème la dessus sauf que lors que je tape ./start_server.sh il ne fait rien, par rien j'entends que le serveur cod4 ne se lance pas et que le screen n'apparait pas lorsque je tapes un screen -ls
        1. Contributeur
          si dans ton fichier, tu mets
          #!/bin/bash

          screen -dmS cod4public sleep 60
          tu le démarres, tu le vois avec screen -ls ?
          1. oui je le vois, cela voudrait dire qu'il ne prends pas en comptes mon chemin d'accès ou les options pour l'exécution?
            1. Contributeur
              es-tu dans le bon répertoire ? que répond
              ls -l ../game/cod4/cod4_lnxded
              1. -rwxr-xr-x 1 adminjeux adminjeux 2278332 jui 2 2008 ../game/cod4/cod4_lnxded

                Voilà la réponse que j'obtiens.
                1. Contributeur
                  et démarrer dans le terminal:
                  screen -dmS cod4public ../game/cod4/cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2
                  ou
                  ../game/cod4/cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2
                  fonctionne ?
                  le chemin de la commande est différent dans le post #1
                  1. Lorsque je tape la deuxième commande voilà ce que j'otient

                    ../game/cod4/cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2
                    CoD4 MP 1.7 build linux-i386 Jun 28 2008
                    begin $init
                    ----- FS_Startup -----
                    Sys_Error: Error during initialization:
                    No IWD files found in /main

                    cela voudrait-il dire que je dois spécifier le chemin d'accès du fichier server.cfg
                    1. Losque je tape c'est commande en direct il me retourne la même erreur

                      ../game/cod4/cod4_lnxded +exec ../game/cod4/server.cfg +map_rotate +set dedicated 2

                      ../game/cod4/cod4_lnxded +exec ../game/cod4/main/server.cfg +map_rotate +set dedicated 2

                      lorsque je tapes :

                      ls -l ../game/cod4/main/server.cfg

                      Voilà la réponse :

                      -rw-r--r-- 1 adminjeux adminjeux 13674 jan 23 14:31 ../game/cod4/main/server.cfg

                      Je comprends plus là même en spécifiant l'emplacement du cfg il rejette ma commande...
                      1. ça ça fonctionne c'est comme ça que je lance mon serveur actuellement
                        1. Contributeur
                          essaye dans le script
                          #!/bin/bash

                          cd ../game/cod4
                          screen -dmS cod4public ./cod4_lnxded +exec server.cfg +map_rotate +set dedicated 2
                          1. Je te remercie, en fait c'était tout bête je ne vois même pas pourquoi j'ai pas pensé à changer de répertoire actif à chaque fois... Encore merci de ton aide dubcek