Dark26 Posted August 27, 2003 Share Posted August 27, 2003 Donc voila, j'ai un programme de dns dynamique sur ma bécane linux, www.dynubasic.com , ça marche bien mais il y a un petit HIC en gros ça scan toutes les minutes pour voir si mon ip a changé (normal) mais le problème c'est que si ça scan mon ip pendant la reconnection ( donc à chaque coup car ça met souvent plus d'une minute pour reconnecter , alors la le programme part en couille et se kill tout seul :cnul: j'ai fait mon piti script qui fait un ps -c et qu regarde si il tourne... enfin c'est bon.. donc je voudrais le mettre dans les scripts init.d pour que ça se lance automatique. pour l'intant je le lance avec nohup... si quelqu'un un un example simple d'un script ( avec start stop et restart et éventuellement status que je pourrais adapter facilement ) Link to comment Share on other sites More sharing options...
Sandeman Posted August 27, 2003 Share Posted August 27, 2003 Euh ddclient il fait tout tout seul ... en mode daemon, écrit en perl, et il s'installe dans l'init.d comme un grand ... Avant de partir dans le init.d (parfois assez casse-gueule), as-tu jeté un oeil du côté de la crontab ? j'ai quelques scripts dans mon /etc/init.d (lance du client Folding, forçage du 100 Full sur une Realtek 8139 ...) mais je me suis pas foulé je me suis inspiré des autres scripts. Ou alors vraiment lamba : frodon:~# cat /etc/init.d/mii.sh #!/bin/sh echo -n "Setting eth0 speed and duplex : " /sbin/mii-tool -F 100baseTx-FD eth0 /sbin/mii-tool -A 100baseTx-FD eth0 echo "done" Sur l'autre machine (en Gentoo), là je me suis tapé du beau script qui gère le start et le stop, en couleur et tout, mais comme elle éteinte pour l'instant je ne sais pas te dire ... Link to comment Share on other sites More sharing options...
Sandeman Posted August 27, 2003 Share Posted August 27, 2003 Sinon bien entendu un exemple : celui de Boa (serveur HTTP léger) : suffit de modifier les variables intiales. #! /bin/sh # # Written by Miquel van Smoorenburg <miquels@cistron.nl>. # Modified for Debian GNU/Linux # by Ian Murdock <imurdock@gnu.ai.mit.edu>. # Modified for boa by Bill Allombert <ballombe@debian.org>. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/boa NAME=boa DESC="HTTP server" test -x $DAEMON || exit 0 set -e case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet --exec $DAEMON echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo --exec $DAEMON echo "." ;; restart|force-reload) # # If the daemon can reload its config files on the fly # for example by sending it SIGHUP, do it here. # # If the daemon responds to changes in its config file # directly anyway, make this a do-nothing entry. # echo -n "Reloading $DESC configuration..." start-stop-daemon --stop --signal 1 --quiet --oknodo --exec $DAEMON echo "done." ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0 Pour le status ... euh ça dépend de l'appli Link to comment Share on other sites More sharing options...
Dark26 Posted August 27, 2003 Author Share Posted August 27, 2003 ok merci ç ava pouvoir m'aider j'en avais trouvé un super sur une page web ( par hasard bien sûr ) mais impossible de remettre la main dessus... Link to comment Share on other sites More sharing options...
Dark26 Posted August 27, 2003 Author Share Posted August 27, 2003 #!/bin/bash # # /etc/rc.d/init.d/ # # # # # # Source function library. . /etc/rc.d/init.d/functions case "$1" in start) echo -n "Starting services: " touch /var/lock/subsys/ ;; stop) echo -n "Shutting down services: " rm -f /var/lock/subsys/ ;; status) ;; restart) ;; reload) ;; probe) ;; *) echo "Usage: {start|stop|status|reload|restart[|probe]" exit 1 ;; voila un truc.... bon je vais pouvoir m'inspirer de tous ça et sortir un truc qui tue Link to comment Share on other sites More sharing options...
Dark26 Posted August 27, 2003 Author Share Posted August 27, 2003 #!/bin/sh # # /etc/rc.d/init.d/ # # # # Par dark26 pour le client dynubasic # # Source function library. #. /etc/rc.d/init.d/functions case "$1" in start) echo -n "Starting Dynamique DNS with Dynubasic: " nohup /root/dynubasic/dynu & ;; stop) echo -n "Shutting down Dynamique DNS with Dynubasic : " PID=`ps -e | grep dynu | cut -d ' ' -f1 | head -n1` kill -9 ${PID} PID=`ps -e | grep dynubasic | cut -d ' ' -f1 | head -n1` kill -9 ${PID} ;; status) echo -n "Voici les pid des processus" PID=`ps -e | grep dynu | cut -d ' ' -f1 | head -n1` echo ${PID} PID=`ps -e | grep dynubasic | cut -d ' ' -f1 | head -n1` echo ${PID} ;; restart) ;; reload) ;; probe) ;; *) echo "Usage: {start|stop|status|reload|restart[|probe]" exit 1 ;; esac et voila mon script dynu #!/bin/sh while true do ps -C dynubasic > /dev/null if [ $? = 1 ] then echo "Dynubasic ne tourne pas redemarrage" /root/dynubasic/dynubasic < /root/dynubasic/basic.cfg fi sleep 60 done bon ça a l'air de fonctionner ( ) mais j'ai un problème avec nohup et le & dans le init.d ça me parait bizarre.... y en a til vraiment besoin si c'est au démarrage ??? Link to comment Share on other sites More sharing options...
Sandeman Posted August 28, 2003 Share Posted August 28, 2003 toute petit précision "cosmétique" le echo "-n" fait qu'il n'y a pas de retour chariot. En général c'est pas mal de faire : echo -n "starting machin: " < ton script > echo "done" comme ça : * on a un retour chariot ça évite que le script suivant se mette à la meme ligne * on a une idée d'où vient le pb si un message d'erreur d'affiche avant le done Autre application tu pourrais faire un echo -n "$(PID) " à la place de ton echo $(PID) dans le status, ça mettrait les deux PID sur la même ligne . T'as pas besoin de faire un nohup dans un script init.d, un & suffira (et je ne suis même pas sur qu'il soit nécessaire) My 0.02 runlevel contribution Link to comment Share on other sites More sharing options...
Dark26 Posted August 29, 2003 Author Share Posted August 29, 2003 ok c'est cool :8 je sais pas pas pourquoi il me met une erreur de mappage avec le nouveau kernel Warning: /boot/System.map-2.4.21 does not match kernel data.{ide_build_dmatable} {GPLONLY_ide_build_dmatable} je sais pas c'est quoi ce warning... Link to comment Share on other sites More sharing options...
Sandeman Posted August 29, 2003 Share Posted August 29, 2003 Que le system.map (fichier d'infos de debug généré lors de la compilation du noyau) ne correspond pas au noyau booté. Solution 1 : copier le dernier system.map (find /usr/src/linux | grep system.map) dans ton /boot Solution 2 : virer le système .map, à moins que tu souhaite débugger ton noyau à la mimine... My 0.02 k contribution Link to comment Share on other sites More sharing options...
Dark26 Posted August 29, 2003 Author Share Posted August 29, 2003 ok merci... je vais donc virer le truc Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.