Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1380 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Relancer un processus si il plante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Relancer un processus si il plante

n°462182
pkdev
Posté le 23-04-2004 à 11:31:00  profilanswer
 

salut tlm
 
alors j ai fait un script qui démare plusieurs processus correspondant chaqun à une tache différente qui tourne constament
 
mon pb c que au bout de qques heures certains de ces processus st arrétes
 
je voudrai pouvoir vérifier s'ils tournent et les relancer si ce n'est pas le cas
 
merci de votre aide
 
++
 
PkDeV

mood
Publicité
Posté le 23-04-2004 à 11:31:00  profilanswer
 

n°462184
pkdev
Posté le 23-04-2004 à 11:33:10  profilanswer
 

désolé je viens de m apercevoir que j avais mi mon post a la racine de OSA
 
si un modo pouvai le déplacer dsn OSA/Scripts...
 
merci

n°462193
bobuse
Posté le 23-04-2004 à 11:46:45  profilanswer
 

pour vérifier toutes les deux minutes :

while [ 1 ]; do /sbin/pidof nom_du_process > /dev/null || _truc_a_faire_pour_le_relancer; sleep 2m; done

n°462218
francoisp
Posté le 23-04-2004 à 12:19:18  profilanswer
 

le plus simple c'est que tu lances tes divers process depuis l'inittab en mode respawn
 
comme ça ton script doit aussi controler les processus et si un d'eux est stoppé ou tué, il tue ses divers process et lui meme.  
 
le mode respwn fait qu'il renait de lui meme et donc relance les processus.


---------------
If everything else failed then read the instructions
n°462256
pkdev
Posté le 23-04-2004 à 13:09:53  profilanswer
 

merci de votre aide
 
je vais essayer d etre un pe plus préci sur mon script pcq je pense que ce que vous m'avez di ne fonctionnerai pas dans mon cas
 
j'ai donc placé ce script ds /etc/rc.d/init.d
et j ai fai des liens ds /etc/rc3.d

Code :
  1. #!/bin/sh
  2. env LANG=C /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/bin/cfg/mrtg-134.3.2.1.cfg
  3. env LANG=C /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/bin/cfg/mrtg-134.3.2.2.cfg
  4. env LANG=C /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/bin/cfg/mrtg-134.3.2.3.cfg
  5. env LANG=C /usr/local/mrtg-2/bin/mrtg /usr/local/mrtg-2/bin/cfg/mrtg-134.3.2.4.cfg
  6. ....


et le pb c'est que certain des processus générer par ces commandes plante mais j aimais tous en meme tps il fodrai ke je récupere le PID de chacun pour vérifier s'il tourne ou pas
 
enfin je vai essayer ac vos conseil et je verai si ca marche
 
++

n°462291
francoisp
Posté le 23-04-2004 à 14:08:50  profilanswer
 

oui exactement il suffit de verifier les PID et si un n'est plus present alors stopper l'enssemble proprement.
 
et comme ça le respawn dans l'inittab relance le script et donc la generation des process du manager mrtg.


---------------
If everything else failed then read the instructions
n°462307
pkdev
Posté le 23-04-2004 à 14:23:08  profilanswer
 

oui je veux bien mais je le récupère comment le PID pcq le nom du processus c'est MRTG dans tous les cas

n°462326
francoisp
Posté le 23-04-2004 à 14:36:55  profilanswer
 

Non il suffit de recuperer les nombre de PID des process mrtg parceque si un seul manque (planté il faut de toute façon) tous les relancer.
 
il faut tester la presence de l'enssemble des x processus
genre (dans le cas ou tu en a 6)...
if [ `ps -ef | grep mrtg | wc` -lt 6 ]; then
#cas ou manque un des 6 process si il y en a 6 normalement
....
killall mrtg
killall $0
exit 1
else
#ne rien faire
fi
 


---------------
If everything else failed then read the instructions
n°462345
pkdev
Posté le 23-04-2004 à 14:54:35  profilanswer
 

ouai je comprend ce que tu veux dire mais ca m oblige a kill tous les process et moi j en ai plus d une dizaine et donc fo redémarrer les 10 après
 
i serait pas possible de ne redémarrer que le proc qui a planté??

n°462358
bobuse
Posté le 23-04-2004 à 15:02:23  profilanswer
 

ben dans ce cas, faut que tu utilises des verrous (fichier)

mood
Publicité
Posté le 23-04-2004 à 15:02:23  profilanswer
 

n°462363
pkdev
Posté le 23-04-2004 à 15:03:39  profilanswer
 

Citation :

ben dans ce cas, faut que tu utilises des verrous (fichier)


 
heu ... c'est à dire ???

n°462378
bobuse
Posté le 23-04-2004 à 15:15:02  profilanswer
 

ben quand ton script démarre, il dépose un fichier temporaire portant par exemple comme nom mrtg_1.$$
 
$$ étant le pid du process.
 
Et quand tu check, tu verifies pour tes n fichiers verrous, si les process correspondant sont toujours là. Si non, tu enlèves le fichier, et tu relance le mrtg avec le bon paramètre (grâce au numéro que tu à récupéré sur le nom du fichier).
 
C'est juste une proposition, je sais pas si c'est la meilleure solution ... :)

n°462461
francoisp
Posté le 23-04-2004 à 17:12:46  profilanswer
 

pkdev a écrit :

ouai je comprend ce que tu veux dire mais ca m oblige a kill tous les process et moi j en ai plus d une dizaine et donc fo redémarrer les 10 après
 
i serait pas possible de ne redémarrer que le proc qui a planté??


 
oui mais comme c'est le script qui les redemarre et que lui meme est relancé automatiquement tu n'as rien à faire... jamais...


---------------
If everything else failed then read the instructions
n°462467
francoisp
Posté le 23-04-2004 à 17:16:12  profilanswer
 

bobuse a écrit :

ben quand ton script démarre, il dépose un fichier temporaire portant par exemple comme nom mrtg_1.$$
 
$$ étant le pid du process.
 
Et quand tu check, tu verifies pour tes n fichiers verrous, si les process correspondant sont toujours là. Si non, tu enlèves le fichier, et tu relance le mrtg avec le bon paramètre (grâce au numéro que tu à récupéré sur le nom du fichier).
 
C'est juste une proposition, je sais pas si c'est la meilleure solution ... :)


 
ça balanche beaucoup de fichiers et donc d'acces disque c'est ça qui est pas super... pour mrtg c'est pas trop genant ça bouffe pas de ressources immences mais parfois... ça peu beaucoup ralentir des applications utilisant des fichiers verrous.
 


---------------
If everything else failed then read the instructions

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  Relancer un processus si il plante

 

Sujets relatifs
Amsn Qui plante ...xmms plante
Pb processus mrtgProcessus 99% "aplay"
où je me suis planté ?Killer un process toutes les 24h et le relancer
Quelles options pour le noyau pour une bonne gestion des processus ?[New][Debian SID] Gnome 2.4 qui freeze (il a planté pdt un upgrade!!!)
Gros probleme avec ma debian : chargement qui planteinstal win 98se ou xp ca plante.........
Plus de sujets relatifs à : Relancer un processus si il plante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR