用于查找进程 ID 的终端命令是什么

用于查找进程 ID 的终端命令是什么

我想使用命令行退出某个进程,但我记不起查找该进程 ID 的命令。有人知道吗?

答案1

查找进程 ID(给定其名称)的命令是pidof。但是,由于您的意图是终止该进程,因此除了pidof先使用查找其 pid 之外,还有更好/更简单的方法:

假设您要终止的进程由其名称唯一标识(或者您要终止具有该名称的所有进程),则您不需要知道其 pid。您只需执行 即可killall processname

如果有多个同名的进程,但您只想终止其中一个,使用pidof不会有太大帮助,因为它会给您提供 pid,但不会给您任何信息来确定哪个 pid 属于您真正想要终止的进程。

在这种情况下,您可以执行ps aux | grep processname此操作,它将显示具有给定名称的所有进程以及它们正在运行的控制台(如果适用)和调用它们的参数,希望这可以让您识别您正在寻找的进程。

如果进程打开了任何 X-windows,您也可以使用它xkill来杀死(调用xkill然后单击该窗口)。

答案2

您应该看看pgreppkill,这两个非常方便且功能强大的实用程序在大多数 Linux 和 UNIX 系统上都可以找到。

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes

答案3

您可以ps -A在终端中运行以显示当前正在运行的所有进程(及其进程 ID)。

答案4

我最喜欢的是pstree -p | grep $(program_name)。这实际上会 grep 该进程,突出显示它并在括号中显示 pid。

我接下来最喜欢的(特别是在编程和需要进程的所有 pid 时)是pgrep -law ""。这实际上为您提供了应用程序后面运行的每个 pid(带有绝对路径)。

这可以简化为pgrep -lw ""针对 pid 后跟程序名称,甚至仅pgrep -l针对所有 pid

当然,您可以搜索特定程序(或程序的一部分)的名称。(例如,pgrep -lw firef可能会显示类似“4567 firefox”的内容)。

相关内容