![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Unix Forum d'entraide sur les systèmes Unix et dérivés (*BSD, AIX, etc.). Avant de poster ->F.A.Q BSD F.A.Q. Aix |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 14
|
Je dois developper un script permettant de vérifier la filiation d'un process A par rapport à un process B : si le process A est bien enclenché par B, je dois effectuer un traitement.
Seulement là ou 'je coince' c'est que le cahier des charges est assez "serré" : notamment pour éviter au max les problèmes de portage, il ne doit pas y avoir de commande spécifiquement basé sur le PPID. Je pensais à un truc de ce genre mais le soucis c'est que c'est codé un peu 'crade' à mon goût... - coller le contenu du pstree du process A dans un fichier en supprimant les caracteres 'speciaux' (les traits et autres permettant de 'dessiner' la hierarchie) - inverser le contenu du fichier de façon à ce que le process 'fils' soit en premiere ligne (c'est la fonction sed '1!G;h;$!d') - prendre la 2eme ligne (qui contient normalement le pere du process en 1ere ligne) - vérifier dans cette ligne que le PID correspond a celui du process pere - si c'est ok, effectuer le traitement Ce qui donnerait : Code :
pstree -g 0 -p $PROC | sed 's/\\-+=//g;s/\\-+-//g;s/\\---//g' | sed '1!G;h;$!d'> fichier_tmp.txt
LIGNE_MOT=`cat fichier_tmp.txt | head -2 | tail -1`
echo $LIGNE_MOT | grep $PID_SCRIPT_A | grep $LOGIN
if [ $? = 0 ]
then
Echo "Traitement demarre ici"
fi
|
|
|
|
|
|
#2 (permalink) | ||
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Paris
Messages: 411
|
Citation:
Citation:
|
||
|
|
|
|
|
#3 (permalink) | |
|
Membre Expert
![]() Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
|
Citation:
|
|
|
|
|
|
|
#4 (permalink) | |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 14
|
Citation:
Hors sous Solaris il faut être root il me semble pour avoir le PPID du proc... Là ou j'ai un soucis c'est justement pour pouvoir faire le portage sans avoir X lignes de code redondante via l'usage d'un case. Il semblerait alors qu'il n'y ait pas de moyen "simple"... |
|
|
|
|
|
|
#5 (permalink) | |
![]() Date d'inscription: mars 2004
Localisation: Parti pour de bon
Âge: 28
Messages: 3 041
|
Citation:
Quelque soit l'utilisateur sur tout serveur unix, tu peux lancer un ps |
|
|
|
|
|
|
#7 (permalink) | |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 14
|
Citation:
|
|
|
|
|
|
|
#8 (permalink) | |
|
Membre éprouvé
![]() Date d'inscription: juin 2007
Localisation: Paris
Messages: 411
|
Citation:
http://www.opengroup.org/onlinepubs/...lities/ps.html |
|
|
|
|
![]() |
![]() |
||
Filiation process sur Unix
|
||
| Outils de la discussion | |
|
|