Récupéré le PID du grand pére d'1 processu
Résolu/Fermé
paksouse
-
Modifié par paksouse le 23/01/2012 à 18:29
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 25 janv. 2012 à 12:35
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 25 janv. 2012 à 12:35
A voir également:
- Récupéré le PID du grand pére d'1 processu
- Pere noel whatsapp - Accueil - Messagerie instantanée
- Excel trier du plus grand au plus petit - Guide
- Photo insta en grand - Guide
- Mon compte facebook est piraté comment le récupérer - Guide
- Ordinateur portable grand ecran - Guide
4 réponses
mamiemando
Messages postés
33372
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 novembre 2024
7 802
Modifié par mamiemando le 24/01/2012 à 10:28
Modifié par mamiemando le 24/01/2012 à 10:28
Effectivement car getppid() ne prend pas de paramètre, tu ne peux donc pas la composer par elle même. Il était précisé que tu devais répondre avec du langage C ?
Personnellement j'aurais plutôt utilisé la commande :
... qui donne l'arbre des processus. Ensuite avec un grep bien choisi j'aurais extrait la ligne du processus qui m'intéresse, ainsi que les deux lignes qui précèdent (père et grand père) avec l'option -B2. Et j'aurais enfin conservé uniquement la première ligne parmi ces trois avec head -n1.
Note la présence du "grep -v grep" qui permet d'éviter d'être pertubé par les greps présents dans la commande qu'on lance, car évidemment, si l'on a plusieurs processus extraits à la suite des greps, tout tombe à l'eau.
Ensuite avec awk, on peut extraire la colonne qui nous intéresse (on peut aussi passer à ps des options pour avoir un format plus pratique à manipuler)
Bonne chance
Personnellement j'aurais plutôt utilisé la commande :
ps faux
... qui donne l'arbre des processus. Ensuite avec un grep bien choisi j'aurais extrait la ligne du processus qui m'intéresse, ainsi que les deux lignes qui précèdent (père et grand père) avec l'option -B2. Et j'aurais enfin conservé uniquement la première ligne parmi ces trois avec head -n1.
(mando@aldur) (~) $ ps faux | grep -v grep | grep -B2 ssh-agent root 1978 0.0 0.1 60328 2176 ? S 09:53 0:00 \_ -:0 mando 2096 0.0 0.0 4148 632 ? Ss 09:56 0:00 \_ /bin/sh /usr/bin/startkde mando 2137 0.0 0.0 12236 300 ? Ss 09:56 0:00 \_ /usr/bin/ssh-agent /usr/bin/gpg-agent --daemon --sh --write-env-file=/home/mando/.gnupg/gpg-agent-info-aldur /usr/bin/dbus-launch --exit-with-session /usr/bin/startkde (mando@aldur) (~) $ ps faux | grep -v grep | grep -B2 ssh-agent | head -n1 root 1978 0.0 0.1 60328 2176 ? S 09:53 0:00 \_ -:0
Note la présence du "grep -v grep" qui permet d'éviter d'être pertubé par les greps présents dans la commande qu'on lance, car évidemment, si l'on a plusieurs processus extraits à la suite des greps, tout tombe à l'eau.
Ensuite avec awk, on peut extraire la colonne qui nous intéresse (on peut aussi passer à ps des options pour avoir un format plus pratique à manipuler)
(mando@aldur) (~) $ ps faux | grep -v grep | grep -B2 ssh-agent | head -n1 | awk '{print $12}' -:0
Bonne chance
titus22
Messages postés
1918
Date d'inscription
jeudi 1 décembre 2011
Statut
Membre
Dernière intervention
16 février 2012
636
24 janv. 2012 à 10:16
24 janv. 2012 à 10:16
Effectivement tu peut utiliser getpid et getppid pour avoir la valeur du pid et du pid père. Il n'existe pas de fonction retournant le pid du grand père.
Pour ce faire il faut que le père envoie le pid du grand-père à son fils. Via tube,socket,fichier...
Pour ce faire il faut que le père envoie le pid du grand-père à son fils. Via tube,socket,fichier...
OK. merci .
c'est ce que j'ai cru,il faut passer le pid du grand père soit par des variables ou les tube,socket,fichier .
Merci pour vos réponses .
c'est ce que j'ai cru,il faut passer le pid du grand père soit par des variables ou les tube,socket,fichier .
Merci pour vos réponses .
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 621
25 janv. 2012 à 12:35
25 janv. 2012 à 12:35
hello
obtenir le PPID avec getppid(), ouvrir le fichier /proc/PPID/status et lire la ligne PPid, j'obtiens le PPID du PPID
obtenir le PPID avec getppid(), ouvrir le fichier /proc/PPID/status et lire la ligne PPid, j'obtiens le PPID du PPID