script start adsl - Linux et OS Alternatifs
Marsh Posté le 09-07-2001 à 23:37:40
#!/bin/bash   
   
case "$1" in   
  start)   
        action "Init modem: " /usr/local/bin/modem_run -f /path/to//mgmt.o -m   
        action "Init connection: " pppd call adsl   
        echo -n "Bringing up DNS"   
        if [ -f /etc/resolv.conf ];   
                then   
                        rm /etc/resolv.conf   
        fi   
        ln -s /etc/ppp/resolv.conf /etc/resolv.conf   
        ;;   
  stop)   
        echo -n "Killing pppd"   
        killall pppd   
        kill $(pidof modem_run)     
        ;;   
  restart)   
        echo -n "restart pppd"   
        killall -HUP pppd   
        ;;   
        *)   
        echo -n "Usage: $(basename $0) start|stop|restart" 
        exit 1 
esac 
   
   
je viens de le faire.   
je ne pense pas qu'il marche mais cela devrait te donner une diée de ce qu'il faut faire.  
Pour l'utilisation -> http://perso.wanadoo.fr/linux_wiza [...] html#demon
[edtdd]--Message édité par Dark_Schneider--[/edtdd]
Marsh Posté le 09-07-2001 à 23:47:02
peut etre en faisant un chmod 555 ? (lecture et execution pour tt le monde)
Marsh Posté le 09-07-2001 à 23:50:08
ppp usr/sbin/pppd
usr/sbin/pppd 
 
/usr/sbin n'est accessible que par root 
donc il faut mettre le nom complet -> /usr/sbin/pppd 
de toute facon la connection se fait souvent en tant que root, mais cela n'empeche pas de surfer en tant que user. 
Marsh Posté le 09-07-2001 à 23:55:46
ok  est deja plus impressionant 
 
 
si j ai bien compris, ton script fais est sensé faire qq chose quand je quitte => je dois creer un autre lien du type K99xxxx 
 
en fait si tu pouvais m expliquer ce que ca  signifie 
 
j ai capté que y avait une disjonction de cas (start quit restart) 
 
#!/bin/bash  ??  
$1=variable qui indique si c ets un start , quit ou restart ?? 
*) ?! 
Marsh Posté le 10-07-2001 à 00:55:48
*) = toutes les autres possibilités du case (équivaut à default).   
si tu ne transmet ni start, ni stop, ni restart alors il affiche le message qui dit comment ca fonctionne.   
   
quoi signifie koi ?   
   
$1 = 1er argument du script   
$0 = nom du script   
$n = enième argument du script   
#!/bin/bash = dis que c'est un script pour bash et apelle l'interpréteur bash. man bash pour plus d'info.   
un extrait de /etc/rc.d/rc qui gère les script notamment d'un chgt de runlevel.   
   
   
# Is there an rc directory for this new runlevel?   
if [ -d /etc/rc$runlevel.d ]; then   
 # First, run the KILL scripts.   
 for i in /etc/rc$runlevel.d/K*; do   
 	# Check if the script is there.   
          [ ! -f $i ] && continue   
   
 	# Don't run [KS]??foo.{rpmsave,rpmorig} scripts   
 	[ "${i%.rpmsave}" != "${i}" ] && continue   
 	[ "${i%.rpmorig}" != "${i}" ] && continue   
 	[ "${i%.rpmnew}" != "${i}" ] && continue   
   
 	if egrep -q '^#[[:space:]]+halt:[[:space:]]+yes' $i;then   
      $i stop   
 	fi   
   
 	# Check if the subsystem is already up.   
 	subsys=${i#/etc/rc$runlevel.d/K??}   
 	[ ! -f /var/lock/subsys/$subsys ] && \   
      [ ! -f /var/lock/subsys/${subsys}.init ] && continue   
   
 	# Bring the subsystem down.   
 	if egrep -q "(killproc |action )" $i ; then   
   $i stop   
 	else   
action "Stopping %s: " $subsys $i stop   
 	fi   
 done   
   
 # Now run the START scripts.   
	for i in /etc/rc$runlevel.d/S*; do   
 	# Check if the script is there.   
 	[ ! -f $i ] && continue   
   
 	# Don't run [KS]??foo.{rpmsave,rpmorig} scripts   
 	[ "${i%.rpmsave}" != "${i}" ] && continue   
 	[ "${i%.rpmorig}" != "${i}" ] && continue   
 	[ "${i%.rpmnew}" != "${i}" ] && continue   
   
 	# Check if the subsystem is already up.   
 	subsys=${i#/etc/rc$runlevel.d/S??}   
 	[ -f /var/lock/subsys/$subsys ] || \   
      [ -f /var/lock/subsys/${subsys}.init ] && continue   
......   
  
  
  
comme tu le vois il cherche tous les scripts commençant par K, vérifie si ce ne sont pas des backup ou des copies d'anciens scripts puis lance le script avec l'argument stop pour k'il s'arrete.  
Pour le lancement, il fait la meme chose (tous les script en S, puis lancement avec comme argument start).
[edtdd]--Message édité par Dark_Schneider--[/edtdd]
Marsh Posté le 10-07-2001 à 01:18:54
ok, je commence a voir le principe, masi ou est ce qu on eut avoir une liste des commandes ?? 
 
dans le script que t as ecris:  
 
que signifie "rm" de  "rm /etc/resolv.conf" 
 
pkoi faire le lien :    ln -s/etc/ppp/resolv.conf /etc/resolve.conf   et d ailleurs l option "-s" kesaco ?? 
 
kill $(pidof modem_run) represente quoi ?? 
Marsh Posté le 10-07-2001 à 01:29:38
koi ? tu ne connais pas rm ?  
rm = remove  
rm fichier <- efface fichier  
  
pour le lien c'est toi même qui l'a précisé. -s = symbolique. Cela signifie que l'on fait un lien symbolique. ln = link  
  
kill <- tu en processus dont on donne en argument son n° ou PID (Processus Identification Data).  
pidof prog <- renvoie le PID de prog  
  
man kill  
man pidof  
man rm  
man ln 
man bash
[edtdd]--Message édité par Dark_Schneider--[/edtdd]
Marsh Posté le 10-07-2001 à 01:46:10
je suis un debutant  D
D 
 
j avais vu ln -s sur le site de benoit papillault 
 
 
merci pour toute ces indiction:jap: 
Marsh Posté le 10-07-2001 à 01:47:49
chtite question, on pourrait pas faire : 
kill modem_run  ?? 
 
ps: qu est qu un lien pas symbolique   ?? (sans -s ) 
Marsh Posté le 10-07-2001 à 02:00:00
man kill 
man ln 
Marsh Posté le 09-07-2001 à 23:30:24
voila, j ai creer un petit script pour lancer automatiquement la connection adsl-usb, malheursement ce scrit ne fonction qu en root (sinon, il ne reconnait pas la fonction "pppd" )
 c tres peu mais je voudrais bien l ameliorer:
 c tres peu mais je voudrais bien l ameliorer:  
#demarre la connection
/usr/local/bin/modem_run -f /home/adsl/mgmt.o -m
pppd call adsl
voila
faut il faire un script pour eteindre le modem avec l arret de linux ??