如何使用命令获取Linux进程的PID?
PID或进程ID是标识进程的唯一编号。它们是由Linux内核在运行时创建的,进程调度程序控制着它们的CPU活动。因此,无论何时调用应用程序,内核都会首先产生必要的进程并为它们分配这些唯一的PID值。一个进程可以有多个PID。此外,每个进程都有一个具有唯一PPID(父进程ID)的父进程。
所以,如果你能找到这个PPID,那么你就能使用专门为此设计的程序发送一个终止信号。下面,您将了解如何检查Linux中正在运行的进程,并从终端识别它们的PPID。
您可以使用Linux中的多个进程管理命令(例如pidof,pstree和pgrep)找出一个进程的PPID 。让我们一个接一个地检查它们,看看如何获取Linux进程的PID。
方法1:使用ps命令
Linux中的ps命令在终端中显示所有正在运行的进程以及其他与进程相关的信息,例如PID。我们可以使用此命令列出所有进程,然后使用Linux grep命令过滤出特定进程。它应该向我们显示我们感兴趣的进程ID信息。
$ nano > /dev/null &
$ ps aux | grep "nano"
首先,我们在后台调用了Linux文本编辑器。然后,我们将ps命令和grep命令一起使用,以找出该编辑器的PPID。输出可能包含多个进程ID,但是我们只对第一个感兴趣,因为那是我们的PPID。我们还可以使用Linux awk命令来查找此信息,如下所示。
$ ps aux | awk '/nano/ {print $2}'
此命令更加灵活,因为它禁止所有不相关的信息。它只会显示我们正在寻找的PPID信息。
方法2:使用pstree命令
pstree命令为我们提供了所有正在运行的进程的树状视图。它从终端窗口提供Linux任务列表的图形视图。您可以使用此命令查看PPID以及进程的所有PID信息。查看以下示例,以了解如何利用pstree查找特定进程的PPID。
$ nano > /dev/null &
$ pstree -p | grep 'nano'
$ pstree -p | awk '/nano/ {print $NF}'
首先,我们使用第一个命令在后台生成了一个进程。然后,第二个命令使用Linux中的grep命令来检索此进程的PPID 。最后,第三个命令向我们展示了如何使用awk命令检索此值。
方法3:使用pgrep命令
pgrep命令是Linux中最简单的进程管理命令之一。它检查所有正在运行的进程的列表,并在我们的示例中在标准输出或终端中打印出给定进程的PPID。它通过执行正则表达式匹配工作,非常适合编写Linux Shell脚本。
$ nano > /dev/null &
$ pgrep 'nano'
我们将nano进程的生成与前面的例子类似。然后我们通过使用pgrep命令获得了它的PPID。得到这个值后,我们就可以非常容易地执行Linux的kill工作。
方法4:使用pidof命令
pidof命令是确定Linux进程的PPID的另一种简单但有用的方法。它同时显示PPID和与进程关联的所有其他PID。请查看以下内容,了解如何在实践中使用它。
$ nano > /dev/null &
$ pidof nano
$ pidof -s nano
使用pidof命令检查Linux中正在运行的进程时,通常会看到多个PID。通常,在这种情况下,第一个或最后一个数字是PPID,具体取决于它们是升序还是降序。您可以使用pidof的-s功能来缓解这种情况。它只会显示PPID值。
方法5:使用top命令
top命令提供了类Unix操作系统中所有正在运行的进程的实时视图。您可以使用它在终端中显示Linux任务列表,并找出特定进程的PID信息。
$ top
使用以下命令从top命令的输出中检索特定进程的PPID。
$ nano > /dev/null &
$ top -n1 -b | grep 'nano'
$ top -n1 -b | awk '/nano/ {print $1}'
由于top提供实时输出,而不是将静态数据转储到终端,因此我们使用了-n1和-b选项来打印静态输出。然后,您可以在Linux中使用grep命令或awk命令来检索PPID信息。