如何在 OSX 上对进程进行沙盒化(或监控)

如何在 OSX 上对进程进行沙盒化(或监控)

我在 OSX 上运行了一个 OCR 软件(带有 gui 等),它可以监视文件夹并对放入其中的 PDF 进行 OCR。有时,该过程会开始出现问题,消耗大量系统内存和 CPU,并无限期地在特定 PDF 上运行。

  • 我想知道在这种情况下如何监视该进程并终止它。
  • 我还想防止它导致系统停止运行,例如通过某种方式使用沙盒。

答案1

您可以使用内置的 sandbox(7) 功能在 OS X 上对应用程序进行沙盒处理。请参阅 sandbox(7)、sandbox-exec(1) 和 sandboxd(8) 的手册页。此沙盒脚本存储库也可能有用。

OS X 10.7 (Lion) 将带来更多应用程序沙盒功能,但苹果网站上的详细信息很少。我猜想它与上述功能有关。

答案2

普通方法ps可以帮助解决这个问题:我们运行一个进程,该进程根据ps经过的挂钟时间考虑每个进程消耗的 CPU 秒数,并提醒系统管理员查看该比率是否过大;如果您愿意,当然可以将其与特定进程的终止联系起来。

答案3

要终止进程,您需要找到其进程号。

$ ps a| grep _process_name_

结果如下:

样本:

$ ps a|grep Safari
31755 s000  R+     0:00.00 grep Safari

现在终止该进程:

kill 31755

kill 命令有一些开关,有时你需要使用 kill -kill _process number_

要获取完整选项列表,请使用main kill

相关内容