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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Contôler une sous-tache de fond spécifique d'un script Bash ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Contôler une sous-tache de fond spécifique d'un script Bash ?

n°1344398
p-seeker23
Posté le 06-09-2013 à 14:59:56  profilanswer
 

Le script bash "Parent" lance qqes scripts "enfants" an arrière-plan (tous consistent en un simple "sleep 100" ). Chacun de ces scripts (Parent & enfants) doit tracer sa sortie, naturelle ou provoquée (par un "kill -ABRT" par exemple), dans un fichier log.txt.
 
"Parent" est lancé ainsi: bash Parent &
Lui-même, il fait: bash enfant1 &; bash enfant2 &; .. ; wait; sleep 5; echo "Parent sort" >>log.txt
 
Y a-t-il moyen de signaler à enfant3 (par exemple) de s'arrêter (en traçant sa sortie dans log.txt, donc) sans affecter le reste de la troupe (Parent et autres enfants) ?
Où placer les "traps" ?
 
Le script Parent doit lui aussi tracer sa sortie, même quand il reçoit un "kill -ABRT" par exemple.
 
J'ai constaté que le fait de placer un "trap" dans Parent produit un étrange effet de masquage des signaux par rapports aux fistons, qui ne réagissent plus aux "kill -ABRT".. je me demande s'il est possible de conteôler chacun de ces process *séparément* .. (faire un "kill -ABRT Parent" envoi le signal a tous les process, ce qui n'est pas ce que je veux).
 
Merci de vos idées éclairées.


Message édité par p-seeker23 le 06-09-2013 à 15:00:43
mood
Publicité
Posté le 06-09-2013 à 14:59:56  profilanswer
 

n°1344404
goblin_rie​ur
ingé systemes unix
Posté le 06-09-2013 à 16:00:00  profilanswer
 

oui il suffit de connaitre dans une var ou un fichier dans /var/tmp le numero de processus et de tuer celui là spécifiquement
 
 
genre  

Code :
  1. #!/bin/sh
  2. #enfant3
  3. echo $$ >> /var/log/test.$$.procesenfant3
  4. sleep 100
  5. exit 0


 
du coup en lisant ce fichier tu as le numéro du process


Message édité par goblin_rieur le 06-09-2013 à 16:00:24

---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)
n°1344408
p-seeker23
Posté le 06-09-2013 à 16:11:50  profilanswer
 

goblin_rieur: le but n'est pas de faire un kill -9 (signal SIGKILL non "attrappable" ), mais d'envoyer un message moins violent qui permette au process de sortir de façon contrôlée (en traçant sa sortie).
Or, quand un trap est placé dans Parent, les "kill -(autre chose que 9)" n'affectent plus les fistons ! Ils les ignorent.

n°1344416
goblin_rie​ur
ingé systemes unix
Posté le 06-09-2013 à 16:35:50  profilanswer
 

les seuls arrêts dans la liste des signaux c'est stop & kill tu peux pas passer outre.. si le but n'est pas un de ces deux cas, il faut le traiter de façon algo via un script tierce.
l'abort n'est pas un arret réel au sens signal


Message édité par goblin_rieur le 06-09-2013 à 16:36:36

---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)

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

  Contôler une sous-tache de fond spécifique d'un script Bash ?

 

Sujets relatifs
Ubuntu Freeze et disque dur à fond[expert][script][sed] Nieme occurence ?
Linux bash : pourquoi ma condition ne fonctionne pasexécuter script bash sur un raccourcis
script impression multiple[Bash] Script de clean automatique de compte FTP
Plus de sujets relatifs à : Contôler une sous-tache de fond spécifique d'un script Bash ?


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