如何在 Mac OS X 中暂停和恢复应用程序或进程

OS X 中的终端 杀死或强制退出应用程序,因此暂停或停止的术语通常更容易区分两者。

这意味着您可以让一个占用 100% CPU 的进程在您做其他事情时暂时暂停它,然后在您准备好让该进程做它的事情时恢复它。这是通过命令行技巧实现的,我们将介绍两种不同的方法,即使用带有 -STOP 和 -CONT 标志的 kill 和 killall 命令。理想情况下,您在使用它之前会对命令行有一定的了解和了解,但这当然不是必需的。

开始之前,启动位于/Applications/Utilities/ 中的终端应用程序,同时启动活动监视器,位于同一文件夹中。

从命令行停止继续进程

如何在 Mac OS X 中临时暂停停止进程或应用程序

暂停应用程序的基本语法如下,其中 PID 是您希望暂停的进程的 ID:

kill -STOP PID

PID 始终是一个数字,Mac 上运行的每个进程都有一个关联的 ID。

如果您熟悉检索进程 ID,那么您已经知道单独使用上述命令可以做什么,但如果不熟悉,那么这就是我们接下来要介绍的内容,这就是我们推出“活动监视器”的原因

找到 PID 并停止相关进程

这是更加用户友好的方法,利用活动监视器:

  • 在“活动监视器”中,使用右上角的“搜索”功能并输入您要暂停的应用程序名称(例如:iTunes)
  • 在匹配进程和/或应用可见的情况下,通过查看“PID”列找到进程 ID
  • 在 Mac OS X 中停止进程

  • 将匹配的 PID 添加到上述 kill 命令中,如下所示:
  • kill -STOP 3138

  • 请注意该进程 ID 的 CPU 活动现在为 0%,表明该进程已暂停(从技术上讲,已停止)

不要忘记 PID,或者更好的是,不要完全关闭终端窗口,因为相同的 PID 是您恢复应用程序以继续能够再次使用它的方式.

您会发现停止进程对 CPU 使用率的影响非常显着,此屏幕截图展示了 iTunes 在运行其 Visualizer 时占用 70% 的 CPU,以及使用 -STOP 标志停止后的相同 iTunes 进程。这个过程实际上已经停止了:

在 Mac OS X 中暂停进程以节省 CPU

有更多命令行知识的人可能更喜欢使用 ps 而不是 Activity Monitor,这真的很容易:

ps aux |grep 名称

将“名称”更改为进程或应用程序名称的任何开头,找到 PID,然后将其放入 kill 命令中:

kill -STOP 92841

使用活动监视器或 ps 检索 PID 是无关紧要的,只要在使用 kill 命令时输入正确的进程 ID 即可。

请注意,尝试使用已暂停的应用程序几乎总是会看到旋转的死亡沙滩球,减去 CPU 使用率。因此,如果您想再次使用该应用程序,则必须“恢复”它。

如何恢复“已停止”的应用程序或进程

恢复停止或暂停的应用程序很简单,只需稍微更改 kill 命令并使用您从前面的步骤中检索到的相同进程 ID:

kill -CONT PID

例如,要使用之前的 PID 恢复 iTunes 应用程序:

kill -CONT 3138

现在 iTunes 又可以使用了,只是旋转的等待光标消失了。随之而来的是恢复到之前存在的任何 CPU 消耗水平。

下面的屏幕截图演示了使用 kill 和 killall 命令的技巧:

在 Mac OS 中暂停和恢复应用程序X

将 -STOP 和 -CONT 与 killall 一起使用本质上是相同的,但它在名称方面有一些限制,因此我们介绍了使用基于 PID 的 kill 的更直接方法。尽管如此,让我们也用 killall 来证明这一点。

按应用名称停止和继续应用

如果您知道应用程序或确切的进程名称,您还可以使用带有 -STOP 标志的“killall”命令来停止进程。对于易于通过名称识别的应用程序来说,这可能更容易,但在处理名称复杂的进程或暂停具有相同名称的重复进程的特定进程(如特定的 Chrome 选项卡)时,它有局限性或与许多“Google Chrome 渲染器”进程混合的窗口),因此我们首先介绍了 PID 方法,因为它更直接。

killall 的基本停止命令如下:

killall -STOP AppName

不确定应用名称是什么?使用 ps 和 grep:

ps aux |grep AppName

例如,您可以对“Chrome”进行 grep 以查找名称中包含“Chrome”的所有进程:

ps aux|grep Chrome

或者您可以像这样使用特定的应用程序名称来定位进程:

killall -STOP -c "Google Chrome"

使用 killall 恢复进程和应用程序只是将标志从 -STOP 更改为 -CONT,其他一切都是一样的:

killall -CONT AppName

例如恢复名字很长的应用:

killall -CONT -c "Google Chrome"

同样,应用程序/进程将继续正常运行,CPU 使用率将恢复到暂停前的水平。

名称中没有空格的应用程序或进程可以直接受到 killall 的影响,而无需任何额外的标志或指示器,例如 iTunes。