Wenn ich die PID-Nummer eines Prozesses kenne, wie kann ich seinen Namen erhalten?

Wenn ich die PID-Nummer für einen Prozess (auf einem UNIX-Computer) habe, wie kann ich den Namen des zugehörigen Prozesses herausfinden?

Was muss ich tun?

Author: slhck, 2013-08-17

10 answers

Auf allen POSIX-kompatiblen Systemen und unter Linux können Sie ps:

ps -p 1337 -o comm=

Hier wird der Prozess durch seine PID mit -p ausgewählt. Die Option -o gibt das Ausgabeformat an, comm bedeutet den Befehlsnamen.

Für den vollständigen Befehl, nicht nur den Namen des Programms, verwenden Sie:

ps -p 1337 -o command

Siehe auch: ps – Die Open Group Base Specifications Ausgabe 6

 345
Author: slhck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-05-04 18:11:02

Sie können den Prozessnamen oder den Befehl, der von der Prozess-ID oder pid verwendet wird, aus

/proc/<pid>/cmdline

Indem Sie

cat /proc/<pid>/cmdline

Hier ist pid die PID, für die Sie den Namen
Beispiel:

 # ps aux

   ................
   ................
   user  2480  0.0  1.2 119100 12728 pts/0  Sl   22:42   0:01 gnome-terminal
   ................
   ................

Um den von pid 2480 verwendeten Prozessnamen zu finden, verwenden Sie can

# cat /proc/2480/cmdline 

 gnome-terminal
 56
Author: Stormvirux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-03-30 18:18:07

Um den Pfad des Programms mit einer bestimmten PID abzurufen, können Sie Folgendes verwenden:

ps ax|egrep "^ [PID]"

geben Sie hier die Bildbeschreibung ein

Alternativ können Sie verwenden: -

ps -a [PID]

Oder auch:

readlink /proc/[PID]/exe
 16
Author: Pedro Lobito,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-05-22 16:16:35

Sie können pmap verwenden. Ich suche nach PID 6649. Und schneiden Sie die zusätzlichen Prozessdetails ab.

$ pmap 6649 | head -1
6649:   /usr/lib64/firefox/firefox
 9
Author: Mike Studer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-27 05:33:11
# ls -la /proc/ID_GOES_HERE/exe

Beispiel:

# ls -la /proc/1374/exe
lrwxrwxrwx 1 chmm chmm 0 Mai  5 20:46 /proc/1374/exe -> /usr/bin/telegram-desktop
 8
Author: Carlos H. M. Moreira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-05-06 00:14:20

Sie können awk auch in Kombination mit ps

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

Beispiel:

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

Zum Drucken der ÜBERSCHRIFT können Sie

 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
 4
Author: Gangadhar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-08-17 11:25:53

Simmilar zu slhcks Antwort, aber auf Dateioperationen anstelle von Befehlsaufrufen angewiesen:

MYPID=1
cat "/proc/$MYPID/comm"
 3
Author: ThorSummoner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-20 10:04:39

Überraschenderweise hat niemand die Option-f (full command) für ps erwähnt. Ich verwende es gerne mit-e (alles) und leiten Sie die Ergebnisse an grep weiter, damit ich meine Suche eingrenzen kann.

ps -ef | grep <PID>

Dies ist auch sehr nützlich, um vollständige Befehle anzuzeigen, die von jemandem ausgeführt werden, der viele Ressourcen auf Ihrem System benötigt. Dies zeigt Ihnen die Optionen und Argumente, die an den Befehl übergeben werden.

 3
Author: jdelaporte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-02-23 21:47:17

Ich finde die einfachste Methode mit dem folgenden Befehl:

ps -awxs | grep pid
 0
Author: user666282,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-11-21 16:15:11

Hat ein einfaches Skript erstellt, um PID zu finden und in Bash-Skripten zu verwenden...
verwenden Sie mit Vorsicht!!

Screenshot:
Abbildung

http://pastebin.com/Cm9YH67U

}

 -1
Author: André Verwijs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-12-26 15:08:43