Aide pour un script :) - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 30-07-2003 à 10:26:41
watcho a écrit : bouhhh personne? |
Pour exectuter une action une seul fois tu deverais cree un fichier dans /var/run/ a la fin du script qui etabli la connection.
Code :
|
Et tu place cette ligne au debut du script ifup.
Code :
|
Comme ca il ne se lance qu'une fois !
Voila
Marsh Posté le 30-07-2003 à 15:26:52
Je rajouterais un test au début du script de connexion qui efface obligatoirement le fichier /var/run/vpn au cas où la connexion serait interrompue anormalement. En fait, il faut même toujours l'effacer, et faire les tests après, je pense.
Marsh Posté le 30-07-2003 à 17:09:14
si tu l'effaces systematiquement au debut du script il ne sert plus à rien non ?
je vois plutot un test sur ps -eaf |grep tondemon, mais bon j'ai pas super reflechi à ca pour le moment, j'ai d'ailleurs un probleme dans le meme genre avec proftpd ou le fichier de lock reste présent apres un crash
Marsh Posté le 30-07-2003 à 17:48:21
blame a écrit : si tu l'effaces systematiquement au debut du script il ne sert plus à rien non ? |
Ben si. La première fois que le truc se lance, il faut bien créer un fichier correspondant au fait qu'il tourne. Mais à un moment, tu es sûr que le processus ne tourne pas. Si le fichier existe à ce moment-là, c'est qu'il y a eu un problème. Et par exemple, dans ce fichier, tu mets le numéro de PID du processus (d'où l'intérêt de recréer à chaque fois le fichier).
Par contr, une fois le script lancé (et le script sait que le dméon est censé tourner), il faut vérifier la présence de ce fichier de lock.
C4est curieux, j'ai l'impression de pas être très clair.
Marsh Posté le 30-07-2003 à 18:24:48
sisi t'es tres clair
Je dirai que tu n'es sur que le processus ne tourne plus lors du stop, donc il n'y a que la que tu puisses supprimer le fichier de bloquage.
c'est bien la le probleme, si la machine est coupée a cause de l'electricité par exemple alors le bloquage ne sera pas eliminé et ton processus ne pourra pas demarrer.
Tu voudrais supprimer le fichier de bloquage au debut mais alors rien n'empechera ton script de supprimer ce fichier, de faire un test et voyant que le fichier n'existe pas de lancer le process.
Et si tu veux supprimer ce fichier plus tard apres le test alors cela reviens a dire que le fichier n'existe pas.
suis je clair a mon tour
Marsh Posté le 30-07-2003 à 22:05:10
Pourquoi ne pas faire un truc simple :
pidof PROCESSUS > /dev/null
if [ $? -eq 0 ]
then echo "deja une connection"
else echo " pas de processus"
fi
Marsh Posté le 29-07-2003 à 11:33:03
Voila, j'ai implémenté (comme vous pouvez le voir dans un autre thread) un vpn en ppp over ssh entre une conenxion ip fixe et une ip dynamqiue. Le Vpn doit donc se couper et se recréer lors de la reconnexion de l'ip dynamique. Je me disais: facile je claque mes scripts dans ip-up et ip-down et c'est fait... Seulement la connexion ppp s'effectuant sur le ssh execute aussi ces scripts donc j'ai vite 30 connexions PPP simultanément ce qui ne m'arrange pas trop.
J'ai donc pensé a un 'interrupteur' qui serait à 1 lorsque la connexione est instanciée et à 0 sinon, et je testerais cet interrupteur dans mon script ip-up et ip-down. Seulement, je suis un gros nul en scripting (qui ne demande qu'a apprendre ) et je vous pose donc ces deux questions:
Est ce que cette solution d'interrupteur est optimale?
Pouvez vous me donner une ébauche de script qui testerait ca
Merci bcp