Andesi - forum

Forum francophone pour Debian

Vous n'êtes pas identifié(e).

#1 05/05/2007 21:58:12

Jared
Membre
Inscription : 18/03/2007
Messages : 10

Question syntaxe script

Bonjour.
J'ai une petite question pour un script.
Le script est utilisé pour lancer un serveur Enemy-territory.
Il est très basique et je voudrais lui ajouter une vérification de présence du processus.

#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
cd /home/games/test/
case "$1" in
    start)
        echo -n "Démarrage du serveur" ;
        sh test.sh & >& /dev/null ;
        echo "." ;
        ;;
    stop)
        echo -n "Arret du serveur" ;
        killall -9 etpro.x86 >& /dev/null ;
        echo "." ;
        ;;
    restart)
        echo -n "Redémarrage du serveur" ;
        killall -9 etpro.x86 >& /dev/null ;
        sleep 1 ;
        sh test.sh & >& /dev/null ;
        echo "." ;
        ;;
    *)
        echo "Usage: /etc/init.d/$NAME start|stop|restart" >&2
        exit 1
        ;;
esac
exit 0

Sur la page "Gérer les services lancés au démarrage", il y est mis ceci pour vérifier la présence mais sont fonctionnement m'échape.

# Vérifie si le processus etpro.x86 est déjà lancé ou non
        if [ -z "$(ps ax | egrep etpro.x86)" ]; then
            echo " etpro.x86 isn't running, so not killed" ;
        else
            killall -9 etpro.x86 >& /dev/null ;
        fi

Je cherche le moyen de vérifier que le serveur ne tourne pas avant de faire un "start", pour éviter de le lancer 2 fois et de gaspiller des ressources.
Pour qu'il vérifie si etpro.x86 tourne et de simplement avertir de sa présence et non pas le tuer comme proposé au dessus.
lancement :
vérification, si présent -> message comme quoi il est déja la, stop
                  si pas présent, suite qui lance le serveur normalement.

Merci.

Hors ligne

#2 06/05/2007 22:43:19

mathieu9512
Membre
Inscription : 27/01/2006
Messages : 263

Re : Question syntaxe script

pour le test tu peux faire ça :

# Vérifie si le processus etpro.x86 est déjà lancé ou non
        if [ -z "$(ps ax | egrep etpro.x86)" ]; then
            echo "n'est pas lancé" ;
            /etc/init.d/scriptQuiLanceLeServeur;
        else
           echo "il est lancé, on ne fait rien";
        fi

Hors ligne

#3 06/05/2007 23:40:55

Jared
Membre
Inscription : 18/03/2007
Messages : 10

Re : Question syntaxe script

Merci beaucoup !
Ca marche niquel.
As-tu un site où je pourrais me familiariser avec ce type de "programmation".
Merci.

Hors ligne

#4 07/05/2007 10:17:33

Tihz
Membre
Lieu : Paname
Inscription : 02/11/2006
Messages : 876

Re : Question syntaxe script

Jared a écrit :

Merci beaucoup !
Ca marche niquel.
As-tu un site où je pourrais me familiariser avec ce type de "programmation".
Merci.

Ce type de programmation est souvent appellé "script shell". Je pense que tu trouvera beaucoup de ressources avec ces mots clé sous google.


Ce qu'il y a de bien avec les standards, c'est qu'il y en a beaucoup entre lesquels choisir.

Hors ligne

Pied de page des forums