如何使用ps命令监视linux进程

使用ps命令获取Linux计算机上运行的进程的快照。按名称、用户甚至终端查找进程,并根据需要提供尽可能多或尽可能少的详细信息。我们教你怎么做。...

使用ps命令获取Linux计算机上运行的进程的快照。按名称、用户甚至终端查找进程,并根据需要提供尽可能多或尽可能少的详细信息。我们教你怎么做。

linux下的进程管理

内核是所有Linux和Unix操作系统的心脏。它的许多职责之一是分配系统资源,如RAM和CPU时间。必须实时处理这些任务,以便根据每个任务的优先级,所有正在运行的进程都能得到公平的份额。

有时任务可能会被锁定,或进入一个紧密的循环,或由于其他原因变得没有反应。或者它们可能会继续运行,但会占用太多的CPU时间或RAM,或者以同样反社会的方式行事。有时任务需要被杀死作为对所有相关人员的仁慈。第一步。当然,就是要确定有问题的过程。

但也许你根本没有任何任务或性能问题。也许你只是好奇哪些进程在你的电脑里运行,你想偷看一下引擎盖下面。ps命令满足这两个需求。它给你一个快照什么是发生在你的电脑“现在”

ps足够灵活,可以精确地以您喜欢的格式提供您所需的信息。事实上,ps有很多选择。这里描述的选项将满足最常见的需求。如果您需要比本文更深入地了解ps,您会发现我们的简介使手册页更容易理解。

上市流程

使用ps最简单的方法是在没有参数的情况下启动它:

ps

如何使用ps命令监视linux进程

Advertisement

ps显示运行该命令的用户启动的进程的列表。

如何使用ps命令监视linux进程

这四列是:

  • PID:进程的进程ID号。
  • TTY:用户登录的控制台的名称。
  • 时间:进程已使用的CPU处理时间量。
  • CMD:启动进程的命令的名称

所有用户的列表过程

通过添加-e(selectallprocesss),我们可以让ps列出所有用户启动的进程,而不仅仅是运行ps命令的用户。因为这将是一个很长的列表,所以我们要把它排成更少的部分。

ps -e | less

如何使用ps命令监视linux进程

进程列表通过管道传输到更少的服务器中。

如何使用ps命令监视linux进程

我们在列表中有更多的条目,但我们看到的是与以前相同的四列。带问号的条目?在TTY列中,没有从终端窗口启动。

显示流程层次结构

有时,如果您可以看到哪些流程启动了其他流程,那么它可以帮助您找出问题或识别特定流程。我们使用-H(hierarchy)选项来这样做。

ps -eH | less

如何使用ps命令监视linux进程

缩进表示哪些进程是其他进程的父进程。

如何使用ps命令监视linux进程

Advertisement

为了更清楚一点,我们可以要求ps添加一些ASCII行,并将层次结构绘制为树。执行此操作的选项是--forest选项。

ps -eH --forest | less

如何使用ps命令监视linux进程

这样可以更容易地跟踪哪些进程是其他进程的父进程。

如何使用ps命令监视linux进程

按名称列出进程

您可以通过grep将ps的输出管道化,以列出名称与搜索词匹配的条目。我们在这里寻找与“firefox”搜索词匹配的条目:

ps -e | grep firefox

如何使用ps命令监视linux进程

在本例中,输出是我们感兴趣的流程的单个条目。当然,如果我们启动了几个Firefox实例,列表中会返回多个条目。

如何使用ps命令监视linux进程

在输出中显示更多列

要向输出中添加更多列,请使用-f(完整格式)选项。

ps -ef | less

如何使用ps命令监视linux进程

ps的输出中包含一组额外的列。

如何使用ps命令监视linux进程

这些列是:

  • UID:此进程所有者的用户ID。
  • PID:进程的进程ID。
  • PPID:进程的父进程ID。
  • C:进程包含的子进程数。
  • 开始时间。过程开始的时间。
  • TTY:用户登录的控制台的名称。
  • 时间:进程已使用的CPU处理时间量。
  • CMD:启动进程的命令的名称。

Advertisement

通过使用-F(额外完整格式)选项,我们可以获得更多的列:

ps -eF | less

如何使用ps命令监视linux进程

我们这次得到的列要求屏幕横向滚动以显示所有列。

如何使用ps命令监视linux进程

按“向右箭头”键将显示向左移动。

如何使用ps命令监视linux进程

我们现在得到的列是:

  • UID:此进程所有者的用户ID。
  • PID:进程的进程ID。
  • PPID:进程的父进程ID。
  • C:进程包含的子进程数。
  • SZ:进程映像的RAM页大小。
  • RSS:驻留集大小。这是进程使用的非交换物理内存。
  • PSR:进程分配给的处理器。
  • 开始时间。过程开始的时间。
  • TTY:用户登录的控制台的名称。
  • 时间:进程已使用的CPU处理时间量。
  • CMD:启动进程的命令的名称。

按进程id列出进程

找到感兴趣的进程的进程ID后,可以将其与ps命令一起使用,列出该进程的详细信息。使用-p(按进程ID选择)选项可以实现这一点:

ps -p 3403

如何使用ps命令监视linux进程

此过程的详细信息如下:

如何使用ps命令监视linux进程

您不限于一个进程ID。您可以提供一个进程ID列表,用空格分隔。

按命令列出进程

C(command)选项允许您使用命令名搜索进程。即启动进程的命令的名称。这与命令行略有不同,命令行可能包含路径名、参数或选项。

ps -C shutter

如何使用ps命令监视linux进程

下面列出了快门过程的详细信息。

列出用户拥有的进程

要查看特定用户拥有的进程,请使用-u(用户列表)选项:

ps -u mary

如何使用ps命令监视linux进程

Advertisement

将显示用户帐户所拥有的进程。

如何使用ps命令监视linux进程

按终端列出进程

要查看与TTY关联的进程,请使用-t(按TTY选择)选项。在没有TTY编号的情况下使用,-t选项报告与当前终端窗口相关联的进程。

tty ps -t

如何使用ps命令监视linux进程

tty命令报告这是伪电传打字机0。ps-t列出的进程都与tty pts/0相关联。

如果我们在命令行上传递一个TTY编号,我们应该得到一个与该TTY相关联的进程的报告。

ps -t 1

如何使用ps命令监视linux进程

这次所有进程都与TTY pts/1相关联。

相关:什么是Linux上的TTY(以及如何使用tty命令)

选择要显示的列

使用-o(格式)选项,可以选择要包含在ps输出中的列。可以按名称指定列。列名的(长)列表可以在手册页上标题为“标准格式说明符”的部分中看到。在本例中,我们选择在输出中包含CPU时间(pcpu)和带参数的命令行(args)。

ps -e -o pcpu,args | less

如何使用ps命令监视linux进程

输出只包括我们请求的两列。

如何使用ps命令监视linux进程

按列对输出排序

可以使用--sort选项对输出进行排序。让我们按CPU列对输出进行排序:

ps -e -o pcpu,args --sort -pcpu| less

如何使用ps命令监视linux进程

pcpu sort参数上的连字符“-”给出了降序排序顺序。

如何使用ps命令监视linux进程

要查看十个CPU最密集的进程,请通过head命令将输出管道化:

ps -e -o pcpu,args --sort -pcpu | head -10

如何使用ps命令监视linux进程

我们得到一个排序的,被截断的列表。

如何使用ps命令监视linux进程

如果我们在显示中添加更多的列,我们可以按更多的列排序。让我们添加pmem列。这是进程正在使用的计算机内存的百分比。不带连字符或带加号“+”,排序顺序为升序。

ps -e -o pcpu,pmem,args --sort -pcpu,pmem | head -10

如何使用ps命令监视linux进程

我们得到额外的列,新列包含在排序中。第一列在第二列之前排序,第二列按升序排序,因为我们没有在pmem上加连字符。

如何使用ps命令监视linux进程

Advertisement

让我们让它变得更有用一点,并添加processid列(pid),以便在清单中看到每个进程的进程号。

ps -e -o pid,pcpu,pmem,args --sort -pcpu,pmem | head -10

如何使用ps命令监视linux进程

现在我们可以确定过程。

如何使用ps命令监视linux进程

按进程id终止进程

我们已经介绍了一系列识别进程的方法,包括名称、命令、用户和终端。我们还讨论了通过进程的动态属性(如CPU使用率和内存)来识别进程的方法。

因此,不管怎样,我们都可以识别正在运行的进程。通过知道它们的进程ID,我们可以(如果需要的话)使用kill命令杀死这些进程中的任何一个。如果我们想终止进程898,我们会使用以下格式:

sudo kill 898

如何使用ps命令监视linux进程

如果一切顺利,这个过程就会悄然终止。

如何使用ps命令监视linux进程

相关:如何从Linux终端终止进程

按名称终止进程

pkill命令允许您按名称终止进程。确保你已经确定了正确的过程!此命令将终止top进程。

sudo pkill top

如何使用ps命令监视linux进程

再说一遍,没有消息就是好消息。进程将以静默方式终止。

如何使用ps命令监视linux进程

按名称终止多个进程

如果您有一个进程的多个副本正在运行,或者一个进程产生了许多子进程(就像Google Chrome可以做的那样),您如何杀死它们?那也很简单。我们使用killall命令。

我们有两份top running:

ps -e | grep top

如何使用ps命令监视linux进程

我们可以用这个命令终止它们:

sudo killall top

如何使用ps命令监视linux进程

Advertisement

没有响应意味着没有问题,因此这两个进程都已终止。

如何使用ps命令监视linux进程

使用“顶部”获取动态视图

ps的输出是一个快照视图。它不会更新。要获取进程的更新视图,请使用top命令。它提供计算机中运行的进程的动态视图。显示器分为两部分。屏幕顶部有一个由几行文字组成的仪表板区域,屏幕下部有一个由列组成的表格。

从以下命令开始:

top

如何使用ps命令监视linux进程

这些列包含有关进程的信息:

  • PID:进程ID
  • USER:进程所有者的名称
  • PR:进程优先级
  • 倪:这个过程很有价值
  • VIRT:进程使用的虚拟内存
  • RES:进程使用的驻留内存
  • SHR:进程使用的共享内存
  • S:进程的状态。请参阅下面此字段可以接受的值的列表
  • %CPU:自上次更新以来进程所用的CPU时间份额
  • %MEM:使用的物理内存的份额
  • TIME+:任务使用的CPU总时间(百分之一秒)
  • 命令:命令名或命令行(名称和命令行参数)如果看不到命令列,请按“右箭头”键。

进程的状态可以是:

  • D:不间断睡眠
  • R:跑步
  • S:睡觉
  • T:跟踪(停止)
  • Z:僵尸

按“Q”键退出顶部。

相关:您应该知道的37条重要的Linux命令

在终止进程之前

确保它是你要找的那个,并检查它不会给你带来任何问题。尤其值得检查的是-H(层次结构)和--forest选项,以确保它没有任何您忘记的重要子进程。

  • 发表于 2021-07-15 01:33
  • 阅读 ( 99 )
  • 分类:互联网

你可能感兴趣的文章

40多个最常用的linux终端命令

... 在您真正充分利用终端之前,您需要知道如何导航它。这就是为什么我们认为这些是最基本的Linux命令:如果你不能更改目录或者在一个你不记得如何使用的命令上获得帮助,那么再多的终端知识也帮不了你。 ...

  • 发布于 2021-03-15 21:40
  • 阅读 ( 265 )

linux中杀死无响应程序的7种方法

... 2使用系统监视器终止linux进程 ...

  • 发布于 2021-03-18 00:56
  • 阅读 ( 372 )

linux命令参考备忘单

...便的Linux命令备忘单。如果您想运行其中的几个,请查看如何在带屏幕的Linux终端上执行多任务。 ...

  • 发布于 2021-03-22 04:06
  • 阅读 ( 236 )

linux中的进程是什么?

... 流程如何开始 ...

  • 发布于 2021-03-27 02:21
  • 阅读 ( 244 )

如何使用cockpit web界面管理linux服务器

...机。它是独立的,设置简单,使用方便。我们将向您展示如何开始。 管理多个linux服务器 如果您要监视多台Linux计算机或服务器,您将面临一个挑战。这是特别真实的,如果其中一些是运行无头系统没有显示器连接。例如,您...

  • 发布于 2021-04-01 00:16
  • 阅读 ( 304 )

如何在linux上杀死僵尸进程

...好的程序会让僵尸进程潜伏在Linux计算机中。了解僵尸是如何产生的,以及如何让它们最终安息。 进程状态如何在linux上工作 当然,Linux必须跟踪计算机上运行的所有应用程序和守护进程。其中一种方法是维护进程表。这是内...

  • 发布于 2021-04-01 07:47
  • 阅读 ( 241 )

为什么linux的systemd在这么多年后仍然存在分歧

...在和以前一样具有分裂性。尽管许多主要的Linux发行版都使用它,但铁杆反对者并没有松懈。 linux引导序列 打开计算机电源后,硬件将引导,然后(根据计算机使用的引导扇区类型)执行主引导记录(MBR)或运行统一可扩展固...

  • 发布于 2021-04-02 02:56
  • 阅读 ( 184 )

如何在linux上的bash中设置环境变量

Linux上有多种类型的环境变量。了解如何查看它们,为本地和远程登录创建它们,并使它们在重新启动后仍然有效。 环境变量的工作原理 启动终端窗口及其内部的shell时,会引用一组变量,以确保shell配置正确。这些变量还确...

  • 发布于 2021-04-02 06:44
  • 阅读 ( 226 )

如何使用linux的screen命令

...窗口推到后台(称为“分离”)。当你想看到你的进程是如何进行的,你可以把窗口拉到前台(“重新连接”)并再次使用它。这对于您不希望通过关闭终端窗口意外终止的长进程来说非常有用。 一旦运行了屏幕会话,就可以...

  • 发布于 2021-04-02 11:06
  • 阅读 ( 182 )

如何在linux上使用suid、sgid和sticky位

...权限的人才能访问存储的密码,那么那些没有该权限的人如何更改他们的密码? 提升你的地位 通常,Linux命令和程序运行时与启动程序的人具有相同的权限集。当root运行passwd命令以更改密码时,它将以root的权限运行。这意味着...

  • 发布于 2021-04-02 14:48
  • 阅读 ( 181 )
kbcofa28406
kbcofa28406

0 篇文章

相关推荐