Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/06/2007, à 11:30

sfel

[script bash] Executer un script en invisible

Yop tt le monde,

Voilà, j'ai créer actuellement un script un shell - bash.
mais le problème c'es tque celui ci bloque l'utilisation du poste durant son execution.

Ce que j'essai de faire, c'est de le faire passer d'une en service pour que l'ont ne soit pas obligé de se logguer (ca, c'est fait dans les rc*.d), et de deux que ce script passe en une sorte de tache de fond, tel qu'apache ou squid par exemple, pour ne pas me bloquer (car a l'avenir, ce script devra tourner en permanence.

voici mon script pour vous donner une idée de ce qu'il réalise, dès fois que ca vous aiderais.

#!/bin/sh

precedent=0
pingErr_1=1
pingErr_2=1

while [[ 1 -eq 1 ]]
do
        ping -c 1 10.0.0.11 -I eth1
        pingErr_1=$?
        precedent=1
        if [[ pingErr_1 -eq 0 ]]
        then
                if [[ precedent -ne 1 ]]
                then
                        echo ".11 MARCHE !!!"
                        route del default
                        route add default gw 10.0.0.11 eth1
                        sleep 1m
                fi
                [[ precedent -eq 1 ]] && sleep 1m
        else
                echo ".11 MARCHE PAS !!!"
                ping -c 1 10.0.0.21 -I eth1
                pingErr_2=$?
                if [[ pingErr_2 -eq 0 ]]
                then
                        echo ".21 MARCHE !!!"
                        if [[ precedent -ne 2 ]]
                        then
                                route del default
                                route add default gw 10.0.0.21 eth1
                        fi
	                precedent=2
                        while [[ pingErr_1 -ne 0 ]]
                        do
                                ping -c 1 10.0.0.11 -I eth1
                                pingErr_1=$?
                                precedent=1
                                if [[ pingErr_1 -eq 0 ]]
                                then
                                        route del default
                                        route add default gw 10.0.0.11 eth1
                                fi
                        done

                else
                        echo "RIEN NE MARCHE !!!"
                fi
        fi
done

si vous me dîtes que le shell ne le fait pas, mais que le C ou autre langage, oui, aucun problème je referai mon code.


merci d'avance.

--
L'ennemi est bête : il croît que c'est nous l'ennemi, alors que c'est lui !
GLOUGLOU ...

#2 Le 20/06/2007, à 11:42

Henry de Monfreid

Re : [script bash] Executer un script en invisible

Pour lacer un script en tâche de fond: il faut faire suivre son nom d'une esperluette (&).

monscript.sh &

« Je te hais plus qu'aucun des dieux qui vivent sur l'Olympe
Car tu ne rêves que discordes, guerres et combats. »
Trouble obsessionnelcompulsif
Le TdCT est revenu (ils reviennent tous)

Hors ligne

#3 Le 20/06/2007, à 11:42

Uggy

Re : [script bash] Executer un script en invisible

sfel a écrit :

mais le problème c'es tque celui ci bloque l'utilisation du poste durant son execution.

C'est a dire ??

Hors ligne

#4 Le 20/06/2007, à 11:45

cduray

Re : [script bash] Executer un script en invisible

Hello

Par exemple, stocke ton script (appelons-le tonscript.sh) dans /usr/local/bin, puis crée un init script dans /etc/init.d comme suit

#!/bin/sh

TONSCRIPT=tonscript.sh

case "$1" in 
'start')
         echo 'démarrage de mon script de changement de route'
         nohup /usr/local/bin/$TONSCRIPT &
         ;;
'stop')
         echo 'arrêt de mon script de changement de route'
         ps -ef |grep $TONSCRIPT | grep -v grep | while read x brol; do kill -9 $x; done
         ;;
*)
         echo "Syntaxe: $0 { start | stop }"
         exit 1
         ;;
esac
exit 0

Ensuite linke ton init script dans les rc.d appropriés...

C

Hors ligne

#5 Le 20/06/2007, à 11:56

sfel

Re : [script bash] Executer un script en invisible

pinballyoda --> merci j'essai de suite, je cherche juste où il faut les mettre (dans le nom, dans le lien ..)

Uggy --> Ba etant donné que je ping, ma machine lorsqu'elle arrive à ce script, bloque le boot, jusqu'à ce qu'elle s'arrete. M'empechant du coup d'affichage de la demande du login / mot de passe.

cduray --> Merci, ca je l'avais réussi. dsolé si je m'étais mal exprimé.

#6 Le 20/06/2007, à 11:57

sfel

Re : [script bash] Executer un script en invisible

cduray --> désolé, j'ai mal lu ton message merci à vous...

#7 Le 20/06/2007, à 12:01

Uggy

Re : [script bash] Executer un script en invisible

sfel a écrit :

Uggy --> Ba etant donné que je ping, ma machine lorsqu'elle arrive à ce script, bloque le boot, jusqu'à ce qu'elle s'arrete. M'empechant du coup d'affichage de la demande du login / mot de passe.

C'est juste que tu l'a mis dans les rc.d  et donc ton script si il ne rend pas la main..empeches les autres services qui doivent demannrer apres de demarrer...

Moi j'ai des trucs de monitoring un peu dans le genre avec des ping...
J'ai juste mis le script dans la cron.. et hop tou les x minutes il fait son ping et en focntion de la reponse execute des actions...

Hors ligne

#8 Le 20/06/2007, à 12:04

Henry de Monfreid

Re : [script bash] Executer un script en invisible

tu peux aussi diminuer la priorité de ton script grace à la commande nice.

nice +1 monscript.sh &

« Je te hais plus qu'aucun des dieux qui vivent sur l'Olympe
Car tu ne rêves que discordes, guerres et combats. »
Trouble obsessionnelcompulsif
Le TdCT est revenu (ils reviennent tous)

Hors ligne

#9 Le 20/06/2007, à 12:16

sfel

Re : [script bash] Executer un script en invisible

oki, mais ce qu'il faut c'es tque je ne sois pas obligé de me logguer, d'où le fait que je l'avai mis en service ^^

#10 Le 20/06/2007, à 12:17

Uggy

Re : [script bash] Executer un script en invisible

sfel a écrit :

oki, mais ce qu'il faut c'es tque je ne sois pas obligé de me logguer, d'où le fait que je l'avai mis en service ^^

Si c'est en cron, personne n'a besoin d'etre loggué....

Hors ligne

#11 Le 20/06/2007, à 13:43

sfel

Re : [script bash] Executer un script en invisible

okay mais la proposition de cduray, conviens pas mal et es tassez simple a réaliser, je pense que je vai me baser dessus.