336 votes

Si je connais le numéro PID d'un processus, comment puis-je obtenir son nom ?

Si j'ai le numéro PID d'un processus (sur une machine UNIX), comment puis-je trouver le nom du processus qui lui est associé ?

Que dois-je faire ?

0 votes

readlink /proc/$PID/exe

4voto

user229637 Points 11

Vous pouvez également utiliser awk en combinaison avec ps

ps aux | awk '$2 == PID number for a process  { print $0 }'

exemple :

root@cprogrammer:~# ps aux | awk '$2 == 1 { print $0 }'
root         1  0.0  0.2  24476  2436 ?        Ss   15:38   0:01 /sbin/init    

pour imprimer HEAD LINE vous pouvez utiliser

 ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'

                 (or) 

 ps --headers aux |head -n 1; ps aux | awk '$2 == 1 { print $0 }'

root@cprogrammer:~# ps --headers aux |head -n 1 && ps aux | awk '$2 == 1 { print $0 }'
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  24476  2436 ?        Ss   15:38   0:01 /sbin/init

3voto

ThorSummoner Points 990

Semblable à Réponse de slhck mais en s'appuyant sur des opérations sur les fichiers au lieu d'invocations de commandes :

MYPID=1
cat "/proc/$MYPID/comm"

3voto

Imran Points 217

Étonnamment, personne n'a mentionné l'option -f (commande complète) pour ps. J'aime l'utiliser avec -e (tout) et envoyer les résultats à grep pour pouvoir affiner ma recherche.

ps -ef | grep <PID>

Cette fonction est également très utile pour examiner les commandes complètes que quelqu'un exécute et qui consomment beaucoup de ressources sur votre système. Cela vous montrera les options et les arguments passés à la commande.

0voto

user666282 Points 11

Je trouve que la méthode la plus simple est d'utiliser la commande suivante :

ps -awxs | grep pid

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X