我想使用命令行退出某个进程,但我记不起查找该进程 ID 的命令。有人知道吗?
答案1
查找进程 ID(给定其名称)的命令是pidof
。但是,由于您的意图是终止该进程,因此除了pidof
先使用查找其 pid 之外,还有更好/更简单的方法:
假设您要终止的进程由其名称唯一标识(或者您要终止具有该名称的所有进程),则您不需要知道其 pid。您只需执行 即可killall processname
。
如果有多个同名的进程,但您只想终止其中一个,使用pidof
不会有太大帮助,因为它会给您提供 pid,但不会给您任何信息来确定哪个 pid 属于您真正想要终止的进程。
在这种情况下,您可以执行ps aux | grep processname
此操作,它将显示具有给定名称的所有进程以及它们正在运行的控制台(如果适用)和调用它们的参数,希望这可以让您识别您正在寻找的进程。
如果进程打开了任何 X-windows,您也可以使用它xkill
来杀死(调用xkill
然后单击该窗口)。
答案2
您应该看看pgrep
和pkill
,这两个非常方便且功能强大的实用程序在大多数 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”的内容)。