如何找到程序的进程ID(PID)。最常用的Linux工具由procps-ng软件包提供,包括ps、pstree、pidof和pgrep命令。在POSIX术语中,进程是一个持续的事件,由操作系统的内核管理。当您启动应用程序时会产生一个进程,尽管您的计算机后台还运行着许多其他进程,包括保持系统时间准确、监控文件系统以查找新进程、索引文件等的程序。大多数操作系统都有某种类型的系统活动监视器,因此您可以查看在任何给定时刻正在运行的进程。Linux有几个选项供您选择,包括GNOME系统监视器和KSysGuard。这两款软件在桌面环境下都很有用,但Linux也提供了从终端监控系统的能力。无论您选择哪一个,检查特定进程对于任何主动管理其PC的人来说都是一项常见任务。在本文中,我演示了如何查找程序的进程ID(PID)。procps-ng包提供了最常用的工具,包括ps、pstree、pidof和pgrep命令。查找正在运行的程序的PID有时您想要获取您知道正在运行的特定程序的进程ID(PID)。pidof和pgrep命令可以通过命令名查找进程。pidof命令返回命令的PID,它按名称搜索确切的命令:$pidofbash17765736pgrep命令允许使用正则表达式:$pgrep.sh160516791688177623335736$pgrepbash5736通过文件查找PID您可以使用fuser命令查找使用特定文件PID的进程。$fuser--user~/example.txt/home/tux/example.txt:3234(tux)通过PID获取进程名称如果你有一个进程的PID号,但没有生成它的命令,你可以用ps做一个“反向查找”:$ps3234PIDTTYSTATTIMECOMMAND5736pts/1Ss0:00emacs列出所有进程ps命令列出进程。您可以使用-e选项列出系统上的每个进程:PIDTTYTIMECMD1?00:00:03systemd2?00:00:00kthreadd3?00:00:00rcu_gp4?00:00:00rcu_par_gp6?00:00:00kworker/0:0H-events_highpri[...]5648?00:00:00gnome-control-c5656?00:00:00gnome-terminal-5736pts/100:00:00bash5791pts/100:00:00ps5792pts/100:00:00less(END)仅列出您的进程ps-e的输出可能会让人不知所措,所以使用-U查看一个用户的进程:$ps-Utux|少PIDTTY时间CMD3545?00:00:00systemd3548?00:00:00(sd-pam)3566?00:00:18pulseaudio3570?00:00:00gnome-keyring-d3583?00:00:00dbus-daemon3589tty200:00:00gdm-wayland-ses3592tty200:00:00gnome-session-b3613?00:00:00gvfsd3618?00:00:00gvfsd-fuse3665tty200:01:03gnome-shell[…]这消除了200个(可能是100个,取决于您运行的系统)需要排序的进程。您可以使用pstree命令以不同的格式查看相同的输出:$pstree-Utux-u--show-pids[...]├─gvfsd-metadata(3921)─┬─{gvfsd-metadata}(3923)│└─{gvfsd-元数据}(3924)├─ibus-portal(3836)─┬─{ibus-portal}(3840)│└─{ibus-portal}(3842)├─obexd(5214)├─pulseaudio(3566)─┬─{pulseaudio}(3640)│├─{pulseaudio}(3649)│└─{pulseaudio}(5258)├─tracker-store(4150)─┬─{tracker-store}(4153)│├─{tracker-store}(4154)│├─{tracker-store}(4157)│└─{tracker-store}(4178)└─xdg-permission-(3847)─┬─{xdg-permission-}(3848)└─{xdg-permission-}(3850)列出进程的上下文您可以使用-u选项查看您拥有的所有进程的附加上下文。$ps-Utux-uUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDtux35450.00.0896569708?Ss13:590:00/usr/lib/systemd/systemd--usertux35480.00.01714165288?S13:590:00(sd-pam)tux35660.90.1172221217352?S
