it-swarm.cn

找出进程ID的终端命令是什么

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

10
jumpnett

找出进程ID(给定名称)的命令是pidof。但是,由于您的意图是终止进程,因此有比使用pidof首先查找其pid更好/更简便的方法:

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

如果有多个具有相同名称的进程,但是您只想杀死其中一个进程,则使用pidof不会有多大帮助,因为它将为您提供pid,但不会为您提供任何信息确定哪些PID属于您实际上要杀死的进程。

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

如果该进程打开了任何X窗口,则还可以使用xkill杀死(调用xkill,然后单击窗口)。

13
sepp2k

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

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

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

4
TheXed

我也有类似的问题。我用pstree -p;这向我显示了当前正在运行的进程,包括进程ID。

2
Meintjes

pidof 。有关详细信息,请发出man pidof

1
mgunes

我最喜欢的是pstree -p | grep $(program_name)。实际上,这可以抓住该过程,将其突出显示并在括号中显示pid。

我的下一个最爱(尤其是在编程和需要过程中的所有PID时)是pgrep -law ""。从字面上看,它使您运行的每个pid都紧随应用程序(具有绝对路径)。

对于pid,可以将其减少为pgrep -lw "",然后对程序名称可以减少所有pid的pgrep -l

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

1
dylnmc

来自@Ben的 重复问题 的答案已经解决了我的问题:

考虑在终端中使用top命令。

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

通过 man top

0
Gui Imamura