Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

je pense bien avoir les pilotes de Benoit papillaud

 

Quand, je vais dans /etc/rc.d/init.d/

 

J' ai un script shell "Speedtouch"

 

voila ce qu' il conteint

Désolé, c' est un peu long..... :P

Mais bon, que modifié la dedans ?

 

Je trouve ça très bien le lancement de la connection ADSL au démarrage,

Je voudrais juste qu' il se ferme tout seul juste avant la fermeture de linux, sans avoir a faire une commande avant de redémarrer où éteindre.....

En dernier recourt je suis preneur pour une commande....

 

 

#!/bin/sh

#

# Script Name : speedtouch

#

# chkconfig: 345 91 35

# authors: Edouard Gomez <ed.gomez@wanadoo.fr>

# Bruno Bonfils <asyd@debian-fr.org>

# revision: 1.7

# description: This SysV script try to establish a connection with an ISP

# using an Alcatel SpeedTouch USB and benoit papillault's driver

# usage: Depend on linux distro

#

# Return Values :

# -1 argument unknown

# 0 success

# 1 kernel module loading failed

# 2 kernel module unloading failed

# 3 microcode file is missing

# 4 modem_run executable missing

# 5 modem_run failed to synchronise adsl line

# 6 ppp executable missing

# 7 ppp connection failed

# 8 usbdevfs mounting failed

# 9 usbdevfs umounting failed

# 10 modprobe executable missing

# 11 mount executable missing

# 12 umount executable missing

# 13 ifconfig executable missing

# 14 peer file missing

# 255 script not configured

#

# $Id: speedtouch.sh,v 1.3 2002/04/16 23:24:44 edgomez Exp $

 

# Includes function def

if [ -f /etc/debian_version ] ; then

RHSTYLE=0

else

RHSTYLE=1

fi

if [ -d /lib/lsb ]; then

LSBSTYLE=1

RHSTYLE=0

else

LSBSTYLE=0

fi

 

if [ $RHSTYLE -ne 0 ] ; then

 

. /etc/init.d/functions

 

# Check existence of the network file

[ ! -f /etc/sysconfig/network ] && exit 1

 

# Include network defs

. /etc/sysconfig/network

else

NETWORKING="yes"

fi

if [ $LSBSTYLE -eq 1 ]; then

. /lib/lsb/init-functions

fi

 

[ "${NETWORKING}" = "no" ] && exit 1

 

 

if [ -f /etc/speedtouch.conf ]; then

. /etc/speedtouch.conf

else

echo "No config file!"

exit 255

fi

 

# VARIABLES

MAX_LOOP=60

USBMODULE=$DEFAULT_USBINTERFACE

VERBOSE=0

PEER="adsl"

 

 

# Lock files

# Red Hat & Mandrake

SYSCONF_FILE="/var/lock/subsys/speedtouch"

# Specific for the Debian

MODEM_RUN_PID=/var/run/modem_run.pid

 

type start-stop-daemon > /dev/null 2>&1

if [ "$?" -eq "0" ]; then

HAVE_START_STOP=1

else

HAVE_START_STOP=0

fi

 

# Change PATH to be sure to include /usr/local/bin

PATH=$PATH:/usr/local/bin

 

#PROG NAMES

MODPROBE=$(which modprobe)

KILL=$(which killall)

PPP=$(which pppd)

MODEM_RUN=$(which modem_run)

MOUNT=$(which mount)

UMOUNT=$(which umount)

IFCONFIG=$(which ifconfig)

 

# will be deprecated? check for existense of /etc/speedtouch.conf

isconfigured()

{

 

if [ $CONFIGURED -eq 0 ] ; then

myecho_failure

exit 255

fi

 

}

 

myecho_success()

{

 

if [ $RHSTYLE -ne 0 ] ; then

echo_success

echo

else

if [ "$LSBSTYLE" -eq 1 ]; then

log_success_msg

else

echo " done."

fi

fi

 

}

 

myecho_failure()

{

 

if [ $RHSTYLE -ne 0 ] ; then

echo_failure

echo

else

if [ "$LSBSTYLE" -eq 1 ]; then

log_failure_msg

else

echo " failed."

fi

fi

 

}

 

load_kernel_module()

{

 

if [ ! -x $MODPROBE ] ; then

myecho_failure

exit 10

fi

 

lsmod | grep -q $1

RETURNED=$?

if [ $RETURNED -ne 0 ] ; then

$MODPROBE -k $1

fi

 

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit 1

fi

 

}

 

unload_kernel_module()

{

 

if [ ! -x $MODPROBE ] ; then

myecho_failure

exit 10

fi

 

lsmod | grep -q $1

RETURNED=$?

if [ $RETURNED -eq 0 ] ; then

$MODPROBE -r $1

fi

 

RETURNED=$?

 

# Steve Parker hack to not fail if the USB module can't be unloaded

if [ "$2" != "noexit" ]; then

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit 2

fi

fi

 

}

 

kill_process()

{

 

ps ax | grep -q $1

RETURNED=$?

if [ $RETURNED -eq 0 ] ; then

$KILL $1 >/dev/null 1>&2

fi

 

}

 

connect_adsl_line()

{

 

#Launch the modem_run driver

if [ ! -f $MICROCODE ] ; then

myecho_failure

exit 3

fi

 

if [ ! -x $MODEM_RUN ] ; then

myecho_failure

exit 4

fi

 

$MODEM_RUN -v $VERBOSE -m -f $MICROCODE

 

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit 5

fi

 

}

 

connect_ppp()

{

 

#Launch ppp daemon

if [ ! -x $PPP ] ; then

myecho_failure

exit 6

fi

 

if [ ! -f "/etc/ppp/peers/$PEER" ] ; then

myecho_failure

exit 14

fi

 

if [ ! -x $IFCONFIG ] ; then

myecho_failure

exit 13

fi

 

if [ "$HAVE_START_STOP" -eq "1" ] ; then

start-stop-daemon --start \

--exec $PPP -- call $PEER > /dev/null 2>&1

else

$PPP call $PEER >/dev/null 2>&1

fi

RETURNED=1

LOOPS=0

 

# Loop until connection has been established with the ISP

# or the transaction has failed

while [ $RETURNED -ne 0 ] && [ $LOOPS -le $MAX_LOOP ] ; do

$IFCONFIG | grep -q 'ppp'

RETURNED=$?

LOOPS=`expr $LOOPS + 1`

sleep 1

done

 

if [ $LOOPS -gt $MAX_LOOP ] && [ $RETURNED -ne 0 ] ; then

myecho_failure

exit 7

fi

 

}

 

mount_usb()

{

 

if [ ! -x $MOUNT ] ; then

echo_failure

exit 11

fi

 

$MOUNT | grep -q usbdevfs

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

$MOUNT none /proc/bus/usb -t usbdevfs

 

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit 8

fi

 

fi

 

}

 

umount_usb()

{

 

if [ ! -x $MOUNT ] ; then

echo_failure

exit 11

fi

 

if [ ! -x $UMOUNT ] ; then

echo_failure

exit 12

fi

 

$MOUNT | grep -q usbdevfs

RETURNED=$?

 

if [ $RETURNED -eq 0 ] ; then

$UMOUNT /proc/bus/usb

 

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit 9

fi

 

fi

 

}

 

get_usb_module()

{

 

MODULE_CONF="/etc/modules.conf"

[ -f /etc/conf.modules ] && MODULE_CONF="/etc/conf.modules"

[ -f /etc/modules.conf ] && MODULE_CONF="/etc/modules.conf"

 

USBMODULE=$(grep "usb-interface" ${MODULE_CONF} | grep -v "^#" | awk '{ print $3 }')

RETURNED=$?

[ $RETURNED -ne 0 ] || [ "$USBMODULE" = "" ] && USBMODULE=${DEFAULT_USBINTERFACE}

 

}

 

 

###############################################################################

#

# Beginning of the script

#

###############################################################################

 

case "$1" in

start)

echo -n Starting ADSL connection:

#isconfigured

 

# Get rid of the kernel driver if loaded

lsmod |grep -w speedtch > /dev/null 2>&1 && rmmod speedtch

# Remove any default route found

defaultrouter=`netstat -rn|grep "^0.0.0.0" | awk '{ print $2 }'`

if [ ! -z "$defaultrouter" ]; then

route delete default gw $defaultrouter

fi

 

# At least but not at last, Mandrake dependant USB daemon

[ -x /usr/sbin/usbd ] && usbd -k 1>&2 >/dev/null

 

# Load usb core if needed

if [ $LOAD_USBCORE -ne 0 ] ; then

load_kernel_module "usbcore"

fi

 

# If one of usb modules has been loaded, mount the usbdevfs

if [ $LOAD_USBCORE -ne 0 ] || [ $LOAD_USBINTERFACE -ne 0 ] ; then

mount_usb

sleep 2

fi

 

# Load usb-interface module described in /etc/modules.conf

if [ $LOAD_USBCORE -ne 0 ] || [ $LOAD_USBINTERFACE -ne 0 ] ; then

get_usb_module

sleep 1

load_kernel_module "$USBMODULE"

sleep 3

fi

 

# ADSL synchro

connect_adsl_line

sleep 1

 

# Load n_hdlc line discipline

if [ $LOAD_NHDLC -ne 0 ] ; then

load_kernel_module "n_hdlc"

fi

 

# ISP connection

connect_ppp

 

# Report success

myecho_success

 

if [ $RHSTYLE -ne 0 ] ; then

touch $SYSCONF_FILE

fi

;;

stop)

echo -n Shutting down ADSL connection:

#isconfigured

 

# Kill pppd to break ppp connection

if [ "$HAVE_START_STOP" -eq "1" ] ; then

start-stop-daemon --stop --pidfile /var/run/ppp0.pid pppd

sleep 2

kill_process modem_run

else

kill_process pppd

sleep 2

kill_process modem_run

fi

 

# Unload HDLC line discipline

if [ $LOAD_NHDLC -ne 0 ] ; then

unload_kernel_module "n_hdlc"

fi

 

 

# At least but not at last, Mandrake dependant USB daemon

[ -x /usr/sbin/usbd ] && (usbd -k 1>&2 >/dev/null)

 

# Unload modules

if [ $LOAD_USBCORE -ne 0 ] || [ $LOAD_USBINTERFACE -ne 0 ] ; then

 

get_usb_module

 

unload_kernel_module "$USBMODULE" noexit

sleep 2

 

umount_usb

sleep 2

 

if [ $LOAD_USBCORE -ne 0 ] ; then

unload_kernel_module "usbcore"

sleep 1

fi

 

fi

 

# Report success

myecho_success

 

# Remove lock file

if [ $RHSTYLE -ne 0 ] ; then

rm -f $SYSCONF_FILE

fi

;;

restart|force-reload)

echo -n Restarting ADSL connection:

#isconfigured

 

if [ $LOAD_USBCORE -ne 0 ] || [ $LOAD_USBINTERFACE -ne 0 ] ; then

 

$0 stop >/dev/null

 

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit $RETURNED

fi

 

$0 start >/dev/null

 

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit $RETURNED

fi

 

else

 

$0 reload >/dev/null

 

RETURNED=$?

 

if [ $RETURNED -ne 0 ] ; then

myecho_failure

exit $RETURNED

fi

 

fi

 

myecho_success

;;

reload)

echo -n Reloading ADSL connection:

#isconfigured

 

# Kills pppd to break ppp connection

if [ "$HAVE_START_STOP" -eq "1" ] ; then

start-stop-daemon --stop --pidfile /var/run/ppp0.pid pppd

else

kill_process pppd

fi

 

sleep 2

connect_ppp

 

myecho_success

;;

status)

exit 0

;;

*)

if [ $RHSTYLE -ne 0 ] ; then

echo "Usage : $0 [start|stop|restart|reload|status]"

else

echo "Usage : $0 {start|stop|restart|force-reload}"

fi

exit -1

 

esac

 

exit 0

Posté(e)

as-tu dans les répertoires /etc/rc.d/rc0.d et /etc/rc.d/rc6.d, un lien pointant vers le script speedtouch qui serait de cette forme:

K35speedtouch

 

?

 

sinon, un petit script appelant /etc/rc.d/init.d/speedtouch stop devrait faire l'affaire.

Posté(e) (modifié)

j' ai les répertoires rc0.d jusqu' a rc6.d

 

le lien portant est S91speedtouch

 

j' ai se script dans rc2.d rc3.d rc4.d rc5.d

 

ça dois être du a mes tantives d' installations qui ont échoué.....où que j' avais pas fini

 

Mais sinon, quand je vais dans le repertoire de mon installation de connection file:/usr/share/speedtouch/speedtouchconf-12-08-2004/speedtouch-1.3-sgp/src/ j' ai le script speedtouch-stop.in

 

Mais, bon j' ai plus le souvenir d' avoir fait l' installation depuis file:/usr/share/speedtouch/speedtouchconf-12-08-2004/

 

./speedtouchconf.sh

en console

 

quand je vais dans le repertoire file:/usr/share/speedtouch/speedtouchconf-12-08-2004/speedtouch-1.3-sgp/src/ et que je fais en console speedtouch-stop

 

[root@localhost src]# speedtouch-stop

Stopping ADSL connection...

head: Ne peut ouvrir `/var/run/ppp-.pid' en lecture: No such file or directory

kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec]

 

 

et ça le ferme pas.... :P

 

sinon, quand je vais voir les services

 

Quand je passe par Configurer votre ordi > system > Services

je vois service Speedtouch actif

 

Quand je tente de l' arrêter, j' ai un message erreur, je le fait une seconde fois, erreur, mais ça ferme la connection ( ça marche en gros :-P )

sinon, après avoir arrêté le modem, il faut que j' attende environ 30 secondes voir 1 minutes avant de fermer linux, sinon je suis bon pour réinstaller les pilotes du modem sous windows ( je me suis fais avoir hier :-( )

Donc, automatisé la fermeture serais un echec, pas assé de temps d' écoulé pour le modem

 

et par System > surveillance system > Ksysguard

le service Speedtouch est en faite le service modem_run

 

Quand je tente de tuer Modem_run, j' ai un message d' erreur

 

Permission insufisante pour tuer le service 2407 qui demande le root

 

sinon, en console root

ça serais killall modem_run :-P

 

Mais c' est vrais que par Ksysguard y a moins de clic a faire

Modifié par tourangeaux
Posté(e)

et si tu lances le script speedtouch ave l'opérande stop

/etc/rc.d/init.d/speedtouch stop

 

la connexion s'arrête-t-elle bien? Tu peux même t'amuser à modifier la valeur des sleep dans le script:

 

 stop)
echo -n Shutting down ADSL connection:
#isconfigured

# Kill pppd to break ppp connection
if [ "$HAVE_START_STOP" -eq "1" ]; then
start-stop-daemon --stop --pidfile /var/run/ppp0.pid pppd
sleep 2
kill_process modem_run
else
kill_process pppd
sleep 2
kill_process modem_run
fi

# Unload HDLC line discipline
if [ $LOAD_NHDLC -ne 0 ]; then
unload_kernel_module "n_hdlc"
fi


# At least but not at last, Mandrake dependant USB daemon
[ -x /usr/sbin/usbd ] && (usbd -k 1>&2 >/dev/null)

# Unload modules
if [ $LOAD_USBCORE -ne 0 ] || [ $LOAD_USBINTERFACE -ne 0 ]; then

get_usb_module

unload_kernel_module "$USBMODULE" noexit
sleep 2

umount_usb
sleep 2

if [ $LOAD_USBCORE -ne 0 ]; then
unload_kernel_module "usbcore"
sleep 1
fi

fi

# Report success
myecho_success

# Remove lock file
if [ $RHSTYLE -ne 0 ]; then
rm -f $SYSCONF_FILE
fi

 

(pour voir les messages, tu peux toujours ouvrir un autre terminal et afficher en continu syslog par cette commande: tail -f /var/log/syslog . Ctrl+C pour arrêter)

Posté(e)

salut

 

dans /etc/rc.d/init.d/ le script speedtouch stop existe pas ici....

 

Je dois le copier ici ? ( speedtouch-stop.in ) :-P

 

le seul endroit où je l' ai trouvé est

file:/usr/share/speedtouch/speedtouchconf-12-08-2004/speedtouch-1.3-sgp/src/ j' ai le script speedtouch-stop.in

 

 

sinon, voila ce que donne le script speedtouch-stop.in

#!/bin/sh

# Author: Benoit PAPILLAULT <benoit.papillault@free.fr>
# Creation: 12/05/2004

# Goal: Stop the connection

# Ensure to have a working PATH
prefix=@prefix@
exec_prefix=@exec_prefix@
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:@sbindir@:@bindir@

# check for root privileges

if [ "`whoami`" != "root" ]; then
 echo "You must launch this script with root privileges. Enter root password."
 exec su -c "$0 $@"
 exit -1
fi

echo "Stopping ADSL connection..."

# if one configuration file exists, read it. This file should define :
# 
# FIRMWARE_LOADER_FILE
# FIRMWARE_FILE
# PPPD_PEER
#

if [ -f /etc/speedtouch/speedtouch.conf ]; then
 . /etc/speedtouch/speedtouch.conf
fi


PID=`head -1 "/var/run/ppp-${PPPD_PEER}.pid"`
kill -TERM $PID

# like we said in speedtouch-start, we don't ever kill modem_run
# killall modem_run

# should not be needed
# killall ppppoa2 pppoa3

 

 

Sinon, oui la connection est belle et bien stopé, puisque ensuite j' ouvre Mozilla pour m' en assurer

 

Euhh...... excuse mais j' ai pas tout suivit la

 

Tu peux même t'amuser à modifier la valeur des sleep dans le script :-(

(pour voir les messages, tu peux toujours ouvrir un autre terminal et afficher en continu syslog par cette commande: tail -f /var/log/syslog . Ctrl+C pour arrêter) :P

 

pour ouvrir les script je les ouvre avec Kwrite, et suivant l' endroit où il se trouve j' utilise VI en console root

Posté(e)

dans /etc/rc.d/init.d/, tu as un script speedtouch (celui que tu as quoté dans un précedent message).

 

Ce script possède une cible stop:

stop)

 

pour appeler ce script avec la cible stop au redémarrage ou à l'extinction de la machine, il suffit d'avoir un lien symbolique K35speedtouch dans les répertoires /etc/rc.d/rc0.d et /etc/rc.d/rc6.d qui pointe sur /etc/rc.d/init.d/speedtouch.

 

Au pire, tu les crées manuellement:

ln -s /etc/rc.d/init.d/speedtouch /etc/rc.d/rc0.d/K35speedtouch
ln -s /etc/rc.d/init.d/speedtouch /etc/rc.d/rc6.d/K35speedtouch

Posté(e) (modifié)

eu oui........

 

se script speedtouch stop est peut être trop rempli, je sais pas ça marche pas

 

du coup pourquoi pas faire mon propre script

 

J' ai essayer avec un script .sh

J' ai fait ça avec un script.sh déjà existant, j' ai tout effacé dedans avec la commande VI

 

Ben, oui pour créer un script je sais pas faire, alors system D :P

Mais ça serais quoi l' extension la mieux adaptée ?

 

sh stop.sh

 

killall modem_run
killall pppd

 

sh stop.sh en console et il ferme les 2 serivces

ensuite j' ai plus qu a attendre 30 secondes pour éteindre où redémarrer

 

Mais, bon

 

Est ce que c' est possible de mettre a la suite du script ses commandes ? :-P

un timer de 30 secondes ( pour qu' il attende sagement avant de faire l' autre commande )

et ensuite redémarrer

où éteindre

 

 

et la je pense que mon blem serait fini

si ça pouvais se faire en double clic comme sur certains script ça serais top, mais alors la c' est demander la lune non ?

 

Après je paye ma tournée :-P:-(

Modifié par tourangeaux
Posté(e)

#!/bin/sh

#On kille modem_run
killall -9 modem_run

#On attend 30 secondes (c'est ptet un peu long ??)
sleep 30

#On kille pppd
killall -9 pppd

 

à enregister sous n'importe quel nom, donner les droits d'exécution (chmod +x), il est probable que seul root ait le droit de réaliser ces opérations.

Posté(e)
 

CODE

 

#!/bin/sh

 

#On kille modem_run

killall -9 modem_run

 

#On attend 30 secondes (c'est ptet un peu long ??)

sleep 30

 

#On kille pppd

killall -9 pppd

 

Je voudrais plutot

 

kill Modem_run et pppd sans mettre de timer entre les 2

ensuite j' attend 30 secondes ( sleep 30 )

et ensuite une commande pour l' éteindre où le redémarrer

 

 

Comme ça je tape ma commande, et voila

tout est programmé fermeture des services de connections, et dans la foulé, redémarrage où éteindre

 

30 secondes non, c' est pas trop

c' est pour bien attendre que mon modem soit OK, si je tente 10 secondes je vais surement devoir réinstaller mon modem sous windows après

 

Killall -9

j' ai entendu que c' étais bien pire que killall

 

Peux tu m' expliquer merci.....

 

Et sinon, en stop.sh

c' est ce qu' il falait ?

Posté(e)

killall -9 (ou killall -KILL) envoie le signal KILL au lieu de TERM au processus récalcitrant; c'est en effet un peu plus expéditif :P.

 

shutdown -h now pour arrêter le système

shutdown -r now pour rebooter le système

 

#!/bin/sh

#On kille modem_run
killall -9 modem_run

#On kille pppd
killall -9 pppd

#On attend 30 secondes (c'est ptet un peu long ??)
sleep 30

case "$1" in
stop)
echo -n "Shutdown invoked. Computer will halt now"
shutdown -h now
;;
reboot)
echo -n "Computer will reboot now"
shutdown -r now
;;
*)
echo "Usage : $0 [stop|reboot]"
exit -1

esac
exit 0

 

tu peux enregistrer sous n'importe quel nom, du moment que c'est exécutable, c'est l'essentiel

là tu appelles ton script avec les opérandes stop ou reboot:

stop.sh stop
stop.sh reboot

 

ou sinon tu fais 2 scripts, un pour arrêter un pour démarrer.

 

//bizarre que la fonction stop du script speedtouch merdouille. C'est ce que fait le script (mis à part le fait que le script envoie un TERM et non un KILL)

 

//faut vérifier que les PATH sont accessibles et les droits utilisateurs sur l'invocation de ces commandes si tu veux le lancer en tant qu'utilisateur simple:

chown root:root <ton_script> <= on donne le script à root

chmod a+s <ton_script> <= on positionne le bit Set-UID pour l'exécution

 

ou passer par sudo.

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...