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
pppusr/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
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" )
#demarre la connection
/usr/local/bin/modem_run -f /home/adsl/mgmt.o -m
pppd call adsl
voila c tres peu mais je voudrais bien l ameliorer:
faut il faire un script pour eteindre le modem avec l arret de linux ??