如何在 Mac OS X 中暂停 & 恢复应用程序或进程
需要快速释放一些处理能力?您可以通过暂时暂停并稍后恢复 Mac OS X 中的任何活动进程或应用程序来轻松做到这一点。从技术上讲,这实际上是“停止”和“继续”进程,但不要将停止与更积极的终止混淆或强制退出应用程序,因此暂停或停止的术语通常更容易区分两者。
这意味着您可以采用一个占用 100% CPU 的进程并在您执行其他操作时暂时暂停它,然后在您准备好让该进程执行它的操作时恢复它。这是通过命令行技巧实现的,我们将介绍两种不同的方法,即使用带有 -STOP 和 -CONT 标志的 kill 和 killall 命令。理想情况下,您在使用此命令之前会对命令行有一定的了解和了解,但这当然不是必需的。
开始之前,启动位于/Applications/Utilities/ 中的终端应用程序,并启动位于同一文件夹中的活动监视器。
如何在Mac OS X中临时暂停停止进程或应用程序
暂停应用程序的基本语法如下,其中PID是你希望暂停的进程的ID:
kill -STOP PID
PID始终是一个数字,Mac上运行的每个进程都有一个关联的ID。
如果您熟悉检索进程 ID,那么您已经知道单独使用上述命令可以做什么,但如果不熟悉,那么这就是我们接下来要介绍的内容,这就是我们启动“Activity”的原因监视器”
查找PID并停止相关进程
这是更友好的方法,利用活动监视器:
- 在活动监视器中,使用右上角的搜索功能并输入您要暂停的应用程序名称(例如:iTunes)
- 在匹配的进程和/或应用程序可见的情况下,通过在“PID”列下查找进程ID
- 将匹配的PID添加到上述kill命令中,如下所示:
- 注意该进程 ID 的 CPU 活动现在为 0%,表明该进程已暂停(从技术上讲,已停止)
kill -STOP 3138
不要忘记PID,或者更好的是,不要完全关闭终端窗口,因为同一个PID是您将如何恢复应用程序以继续能够再次使用它。
您会发现停止进程对 CPU 使用率的影响非常显着,此屏幕截图展示了 iTunes 在运行其 Visualizer 时占用 70% 的 CPU,以及使用 - 停止后的相同 iTunes 进程停止标志。该过程实际上已停止在其轨道上:
有更多命令行知识的人可能更喜欢使用ps而不是Activity Monitor,这真的很容易:
ps aux |grep 名称
将“名称”更改为进程或应用程序名称的任何开头,找到PID,然后将其放入kill命令中:
kill -STOP 92841
无论是使用Activity Monitor还是ps获取PID都无关紧要,只要在使用kill命令时输入正确的进程ID即可。
请注意,尝试使用已暂停的应用程序几乎总是会看到旋转的死亡沙滩球,减去CPU 使用率。因此,如果你想再次使用该应用程序,你必须“恢复”它。
如何恢复“已停止”的应用程序或进程
恢复停止或暂停的应用程序很简单,只需稍微更改kill 命令并使用您从前面的步骤中检索到的相同进程ID:
kill -CONT PID
例如,要使用之前的PID恢复iTunes应用程序:
kill -CONT 3138
现在iTunes 又可以使用了,去掉了旋转的等待光标。随之而来的是恢复到之前存在的任何 CPU 消耗水平。
下面的屏幕截图展示了使用kill 和killall 命令的技巧:
与killall一起使用-STOP和-CONT本质上是相同的,但它在名称方面有一些限制,因此我们介绍了更直接的基于PID使用kill的方法。话虽如此,我们也用killall来演示吧。
按应用程序名称停止和继续应用程序
如果您知道应用程序或确切的进程名称,您还可以使用带有 -STOP 标志的“killall”命令来停止进程。对于易于通过名称识别的应用程序来说,这可能更容易,但在处理名称复杂的进程或暂停具有相同名称的重复进程的特定进程(如特定的 Chrome 选项卡)时,它有局限性或与许多“Google Chrome 渲染器”进程混合的窗口),因此我们首先介绍了 PID 方法,因为它更直接。
killall的基本h alt命令如下:
killall -STOP AppName
不确定应用名称是什么?使用ps和grep:
ps aux |grep AppName
例如,您可以grep for “Chrome”来查找名称中包含“Chrome”的所有进程:
ps aux|grep Chrome
或者您可以使用特定的应用程序名称来定位进程,如下所示:
"killall -STOP -c Google Chrome"
用killall恢复进程和应用程序就是将标志从-STOP更改为-CONT,其他都是一样的:
killall -CONT AppName
比如恢复名字很长的应用:
"killall -CONT -c Google Chrome"
再次,应用程序/进程将继续正常运行,CPU使用率将恢复到暂停前的水平。
名称中没有空格的应用程序或进程可以直接受到killall的影响,而无需任何额外的标志或指示器,如iTunes。