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 04/06/2006, à 23:03

d.loic

[Resolu]Script "intelligent"

Bonjour à tous !

Bon j'ai essayé de trouver sur le net une solution à mon problème, mais rien. Alors le voici :

Je souhaiterais créer un script, par exemple pour lancer le wifi, que je couplerai à une icone. Seulement mon but est que si le wifi est déjà lancé, le script le coupe, et inversement, si wifi non lancé le fait de lancer le script lance un sudo ifup wlan0.

Peut etre quelque chose à tenter avec status (pour certains services...), mais je ne sais pas trop.

Je vous remercie pour vos réponses.

Loïc

Dernière modification par d.loic (Le 25/10/2006, à 21:20)


Loïc

Hors ligne

#2 Le 05/06/2006, à 09:08

mesmento

Re : [Resolu]Script "intelligent"

Essaye ceci :

touch wifi.sh

et tape ceci dans le fichier wifi.sh :

#!/bin/sh -

WLAN='sudo ifup wlan0'

if WLAN
then
   echo "le wifi est déjà fonctionnel"
   exit
else
   sudo ifup wlan0
   echo "wifi activé"
fi

ensuite donne au fichier des droits d'execution :

chmod +x wifi.sh

Je n'ai pas essayé le script donc je ne sais pas s'il fonctionne :\

Hors ligne

#3 Le 05/06/2006, à 10:44

d.loic

Re : [Resolu]Script "intelligent"

Je te remercie pour ta réponse ! Mais elle ne fonctionne pas. En effet, le script passe toujours dans la première boucle.

if $WLAN

execute la commande "ifup wlan0" et ne test pas.

Si quelqu'un a une autre idée ???
J'avais pensé au code retour mais il est égal à zéro, meme si le wifi déjà activé ....


Loïc

Hors ligne

#4 Le 05/06/2006, à 11:07

mesmento

Re : [Resolu]Script "intelligent"

peut-être qu'un test sur les processus en cours serait la solution ?
quel est le nom du processus lancé par ta commande ?

il faudrait un script agissant en fonction du code retour de "ps -A | grep le_processus" , non ?

Voici un script pour faire cela (je viens de le tester avec un processus vim, normalement il fonctionne wink ). Il te suffit de remplacer "le_processus", par le nom de processus envoyé par ton application.

#!/bin/sh -

# Cherche dans les processus si "le_processus" existe. Redirige la sortie et l'erreur standard vers /dev/null
ps -A | grep le_processus > /dev/null 2>&1

# lance le wifi s'il ne l'est pas déjà
if [ $? = 1 ]
then
  echo "Lancement du wifi"
  sudo ifup wifi0
else
  echo "déjà lancé"
fi

exit

Dernière modification par mesmento (Le 05/06/2006, à 11:25)

Hors ligne

#5 Le 05/06/2006, à 13:04

d.loic

Re : [Resolu]Script "intelligent"

Bon je te remercie mesmento. Ca fonctionne enfin, meme si je ne suis pas trop pour ce genre de solution, un peu proche de la bidouille. En effet je me sert d'un processus "dhclient", qui se lance lors de la connection wifi. Seulement ce processus peut surement etre lancé par autre chose.

Voici le code complet du script :

#!/bin/sh -

# Cherche dans les processus si "dhclient3" existe. Redirige la sortie et l'erreur standard vers /dev/null
ps ax | grep "dhclient3 -pf /var/run/dhclient.wlan0.pid -lf /var/li" > /dev/null 2>&1

# lance le wifi s'il ne l'est pas déjà, car commande infruecteuse, retour =1
if [ $? = 1 ]
then
  #on lance le wifi
  sudo ifup wlan0
else
  #on coupe le wifi
  sudo ifdown wlan0
fi

#on quitte
exit

Ca fonctionne tout de meme. Pour aller plus loin, sais tu si je pourrais (juste des pistes) changer l'icone en fonction, du genre je clique sur l'icone, ca lance le wifi et l'icone devient verte. Dans le cas contraire, ca le coupe et elle devient rouge.

On pourrait ensuite créer un petit logiciel ou script pour automatiser la création de ce genre d'icone, pour lancer des services. Ca cacherai en effet la omplexite pour certaines personnes, et je pense que ca pourrait etre utile.

Merci beaucoup
smile


Loïc

Hors ligne