Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2006, 12h17   #1
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
Par défaut Récupérer le nom du process

bonjour,
est ce que c'est possible de récupérer le nom d'un process à partir de son PID? si oui, quelle commande permet de le faire?
merci d'avance
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 12h21   #2
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 245
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 245
Points : 1 902
Points : 1 902
pidof fait l'inverse de ce que tu veux .
Sinon a base de ps et de cut tu peux magouiller.
Il doit exister un commande
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 12h28   #3
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
je doute bien que je puisse y arriver à base de ps car j'ai des commandes de la forme:
Code :
/usr/local/j2re1.4.2_06//bin/java -server -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xbootclasspath:/BZFHOMTT/home/bzfhomtt/server/libs/vbjorb.jar:/usr/local/j2re1.4.2_06//lib/rt.jar -Dcalypso.home=/BZFHOMTT/home/bzfhomtt/server -Dsdd.marketdata.client.instanceName=BZF -Dsdd.marketdata.client.autorecovery=true -Dsdd.marketdata.client.autostart=false -Dcorba.config.file=/BZFHOMTT/home/bzfhomtt/server/config/jcf-eds.xml -DclientEDS.config.file=/BZFHOMTT/home/bzfhomtt/server/config/ceds.properties -Dapp.dir=/BZFHOMTT/home/bzfhomtt/server -Duser.home=/BZFHOMTT/home/bzfhomtt -Duser.dir=/BZFHOMTT/home/bzfhomtt/server com.calypso.apps.startup.StartTaskEngine -logfile /BZFHOMTT/home/bzfhomtt/log/TaskEngine-HOM01.log -userhome /BZFHOMTT/home/bzfhomtt -nogui -env HOM01 -user calypso_user -password quemonott3
et ce n'est pas du tout évident de récupérer le nom du process là-dedans
dans ce cas le nom de l'appli qui est lancée est "StartTaskEngine"
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 12h37   #4
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 245
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 245
Points : 1 902
Points : 1 902
Un truc du genre :
Code :
ps aux | grep StartTaskEngine | cut -f3 -d' '
C'est pas très propre, il y a mieux à faire je pense...
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 12h40   #5
Membre Expert
 
Avatar de 2Eurocents
 
Inscription : septembre 2004
Messages : 2 180
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : septembre 2004
Messages : 2 180
Points : 2 442
Points : 2 442
As-tu essayé de regarder dans l'arborescence /proc/numero_du_process pour voir si un fichier peut contenir une info qui t'intéresserait (genre cmdline, ou bien la valeur qui est entre parenthèses dans stat, ou bien la ligne Name: dans status) ???
__________________
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 12h42   #6
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
le problème est que je n'ai pas que ça, il doit y avoir une dizaine comme ça...
à chaque fois je répète cette commande ou il y a moyen de faire des groupement?
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 13h58   #7
ALT
Membre Expert
 
Avatar de ALT
 
Homme
Assistant aux utilisateurs
Inscription : octobre 2002
Messages : 944
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Service public

Informations forums :
Inscription : octobre 2002
Messages : 944
Points : 1 276
Points : 1 276
Si tu as une liste des PID qui t'intéressent, tu peux faire une boucle FOR dans ton script

Genre :
Code :
1
2
3
4
for i in $pid
do
    ps aux | grep $i | cut -f3 -d' '
done
À affiner !
ALT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 14h06   #8
zul
Membre expérimenté
 
Avatar de zul
 
Inscription : juin 2002
Messages : 498
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 498
Points : 575
Points : 575
tu peux aussi utiliser pgrep qui fait exactement ce que tu veux
zul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 14h18   #9
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 245
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 245
Points : 1 902
Points : 1 902
Citation:
Envoyé par zul
tu peux aussi utiliser pgrep qui fait exactement ce que tu veux

Chapeau bas.
__________________
Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 14h19   #10
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
ok merci beaucoup pour les réponses
je vais éssayer tout ça et je vous tiens au courant
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 14h43   #11
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
j'ai oublié de vous dire en fait que ça:
Code :
/usr/local/j2re1.4.2_06//bin/java -server -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xbootclasspath:/BZFHOMTT/home/bzfhomtt/server/libs/vbjorb.jar:/usr/local/j2re1.4.2_06//lib/rt.jar -Dcalypso.home=/BZFHOMTT/home/bzfhomtt/server -Dsdd.marketdata.client.instanceName=BZF -Dsdd.marketdata.client.autorecovery=true -Dsdd.marketdata.client.autostart=false -Dcorba.config.file=/BZFHOMTT/home/bzfhomtt/server/config/jcf-eds.xml -DclientEDS.config.file=/BZFHOMTT/home/bzfhomtt/server/config/ceds.properties -Dapp.dir=/BZFHOMTT/home/bzfhomtt/server -Duser.home=/BZFHOMTT/home/bzfhomtt -Duser.dir=/BZFHOMTT/home/bzfhomtt/server com.calypso.apps.startup.StartTaskEngine -logfile /BZFHOMTT/home/bzfhomtt/log/TaskEngine-HOM01.log -userhome /BZFHOMTT/home/bzfhomtt -nogui -env HOM01 -user calypso_user -password quemonott3
est une seule ligne en fait et qui correspond à la commande de lancement d'une application...
Citation:
Envoyé par zul
tu peux aussi utiliser pgrep qui fait exactement ce que tu veux
sinon pgrep ne fait pas ce que je veux malheureusement car je ne connais pas les noms de tous les process qui sont lancés et je ne peux pas les parcourir à caus de leur complexité... c'est pour ça que je voudrai pouvoir récupérer le nom du process à partir de son PID.
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 15h19   #12
zul
Membre expérimenté
 
Avatar de zul
 
Inscription : juin 2002
Messages : 498
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 498
Points : 575
Points : 575
Désolé j'avais mal lu la question.
La solution de 2EurosCent me parait bien.
zul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 15h38   #13
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
Citation:
Envoyé par zul
Désolé j'avais mal lu la question.
La solution de 2EurosCent me parait bien.
oui en éffet sinon il faut que je liste tous les process qui m'intéressent et je les passent en paramètre au script...
je crois que je vais faire comme ça...
merci en tout cas
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 17h33   #14
Membre Expert
 
Avatar de granquet
 
Étudiant
Inscription : octobre 2005
Messages : 1 202
Détails du profil
Informations personnelles :
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 1 202
Points : 1 181
Points : 1 181
Code :
1
2
ebola@gentoo ~ $ ps -e | grep 7997
 7997 tty1     00:00:00 bash
moi ca me parait bien

fin, j'ai tetre mal compris la question
granquet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2006, 17h47   #15
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
finalement voici mon script:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/ksh
clear
 
/usr/ucb/ps -auxwww > processes.log
tmp="";
echo $tmp > result.log;
for i in $*
do
	grep -v process.sh | grep $i processes.log > tmp.log
	awk 'NR > 1{print "user="$1",","pid="$2",","cpu="$3",","ram="$4";"}' tmp.log >> result.log
done
 
rm processes.log
rm tmp.log
il calcule ce que je veux sauf que je voudrai ajouter une colonne au fichier result.log sous la forme "processname=$i" (à chaque itération de la boucle, $i est le nom d'un parametre du script) pour chaque ligne dans la boucle, sauf que j'y arrive pas avec awk car apparamment $i a une autre signification pour lui.
est ce que quelqu'un sait comment je dois faire?
dites-moi aussi si j'ai un truc mal écrit dans mon code...
merci
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 00h32   #16
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
awk ne connait pas les parametres shell il faut lui "repasser" ceux donc on a besoin dedans le script awk (man awk) de memoire (pas ma machine sous la main), awk var=$i et utiliser $var dans awk.
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 10h00   #17
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
Citation:
Envoyé par MarcG
awk ne connait pas les parametres shell il faut lui "repasser" ceux donc on a besoin dedans le script awk (man awk) de memoire (pas ma machine sous la main), awk var=$i et utiliser $var dans awk.
tu es sûr qu'il y a cette commande?
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 10h36   #18
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
non c'est pour cela que j'indique le man ......
allez c'est un jour ensoleillé :
http://man.developpez.com/man1/awk.1.php
et plus precisement cette partie :
Citation:
OPTIONS

gawk accepte les options suivantes, listées alphabétiquement :

-F sc
--field-separator sc Utiliser sc en tant que séparateur de champs (la valeur de la variable prédéfinie FS).
-v var=val
--assign var=val Affecter la valeur val à la variable var, avant que l'exécution du programme ne débute. De telles valeurs de variables sont accessibles au bloc BEGIN d'un programme AWK.
-f fichier-programme
donc awk -v var=$i
!
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 10h55   #19
Membre régulier
 
Avatar de soulhouf
 
Inscription : août 2005
Messages : 213
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 213
Points : 95
Points : 95
Citation:
donc awk -v var=$i
ça marche pas sous unix
il faut trouver autre chose...
__________________
"Ce qui ne nous tue pas nous rend plus fort"
Nietzsche
soulhouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2006, 11h00   #20
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
donne une partie significative de ton script et l'usage dans awk de "var"
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h21.


 
 
 
 
Partenaires

Hébergement Web