Si j'ai le numéro PID d'un processus (sur une machine UNIX), comment puis-je connaître le nom de son processus associé?
Que dois-je faire?
Sur tous les systèmes compatibles POSIX, et sous Linux, vous pouvez utiliser ps
:
ps -p 1337 -o comm=
Ici, le processus est sélectionné par son PID avec -p
. L'option -o
spécifie le format de sortie, comm
, signifiant le nom de la commande.
Voir aussi: ps
- Les spécifications de base de Open Group, Numéro 6
Vous pouvez trouver le nom du processus ou la commande utilisée par le processus-id ou pid de
/proc/pid/cmdline
en faisant
cat /proc/pid/cmdline
Ici pid est le pid pour lequel vous voulez trouver le nom
Par exemple:
# ps aux
................
................
user 2480 0.0 1.2 119100 12728 pts/0 Sl 22:42 0:01 gnome-terminal
................
................
Pour trouver le nom du processus utilisé par le pid 2480 utilisé, vous pouvez
# cat /proc/2480/cmdline
gnome-terminal
# ls -la /proc/ID_GOES_HERE/exe
Exemple:
# ls -la /proc/1374/exe
lrwxrwxrwx 1 chmm chmm 0 Mai 5 20:46 /proc/1374/exe -> /usr/bin/telegram-desktop
Vous pouvez utiliser pmap. Je cherche le PID 6649. Et je coupe les détails du processus.
$ pmap 6649 | head -1
6649: /usr/lib64/firefox/firefox
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
Similaire à slack Answer , mais en s'appuyant sur des opérations sur les fichiers plutôt que sur des appels de commandes:
MYPID=1
cat "/proc/$MYPID/comm"
Étonnamment, personne n’a mentionné l’option -f (commande complète) pour ps. J'aime l'utiliser avec -e (tout) et diriger les résultats vers grep afin de pouvoir affiner ma recherche.
ps -ef | grep <PID>
Ceci est également très utile pour consulter les commandes complètes exécutées par une personne et qui utilisent beaucoup de ressources sur votre système. Cela vous montrera les options et les arguments passés à la commande.
fait un script simple pour trouver PID et utiliser dans les scripts bash ...
utiliser avec précaution!!
Capture d'écran:
http://Pastebin.com/Cm9YH67U
André
Je trouve que la méthode la plus simple consiste à utiliser la commande suivante:
ps -awxs | grep pid