Als ik het PID nummer van een proces weet, hoe kom ik dan aan de naam ervan?
Als ik het PID nummer van een proces heb (op een UNIX machine), hoe kom ik dan de naam van het bijbehorende proces te weten?
Wat moet ik doen?
Als ik het PID nummer van een proces heb (op een UNIX machine), hoe kom ik dan de naam van het bijbehorende proces te weten?
Wat moet ik doen?
U kunt de procesnaam of het commando dat gebruikt wordt door de proces-id of pid vinden uit
/proc/pid/cmdline
door te doen
cat /proc/pid/cmdline
Hier is pid de pid waarvoor u de naam wilt vinden Voor exmaple:
# ps aux
................
................
user 2480 0.0 1.2 119100 12728 pts/0 Sl 22:42 0:01 gnome-terminal
................
................
Om de procesnaam te vinden die gebruikt wordt door pid 2480 gebruikt u kan
# cat /proc/2480/cmdline
gnome-terminal
``` &001
Om het pad van het programma met behulp van een bepaalde pid te krijgen kunt u gebruik maken van:
ps ax|egrep "^ [PID]"
of u kunt gebruik maken van:
ps -a [PID]
Je kunt pmap gebruiken. Ik ben op zoek naar PID 6649. En het afsnijden van de extra procesdetails.
$ pmap 6649 | head -1
6649: /usr/lib64/firefox/firefox
# ls -la /proc/ID_GOES_HERE/exe
Voorbeeld:
# ls -la /proc/1374/exe
lrwxrwxrwx 1 chmm chmm 0 Mai 5 20:46 /proc/1374/exe -> /usr/bin/telegram-desktop
Vergelijkbaar met slhck’s Antwoord , maar vertrouwend op bestandsbewerkingen in plaats van opdrachtopdrachten:
MYPID=1
cat "/proc/$MYPID/comm"
U kunt ook awk gebruiken in combinatie met ps
ps aux | awk '$2 == PID number for a process { print $0 }'
bijvoorbeeld:
root@cprogrammer:~# ps aux | awk '$2 == 1 { print $0 }'
root 1 0.0 0.2 24476 2436 ? Ss 15:38 0:01 /sbin/init
om HEAD LINE te printen kunt u gebruik maken van
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
Verrassend genoeg heeft niemand de -f (full command) optie voor ps genoemd. Ik gebruik het graag met -e (alles) en pijp de resultaten naar grep zodat ik mijn zoekopdracht kan verfijnen.
ps -ef | grep <PID>
Dit is ook erg handig om te kijken naar volledige commando’s die iemand uitvoert en die veel resources op je systeem nemen. Dit zal je de opties en argumenten laten zien die aan het commando worden doorgegeven.
Ik vind de makkelijkste methode om met de volgende opdracht te zijn:
ps -awxs | grep pid
een eenvoudig script gemaakt om PID te vinden en te gebruiken binnen bash scripts… gebruik met voorzichtigheid!
Screenshot:
André