syspolicyd
简要回答
syspolicyd是macOS的系统策略进程。它决定软件是否允许被安装、载入或运行,系统的其他部分会向它询问这个结论,例如在你打开App时。
syspolicyd是macOS在App运行前对其进行检查的机制之一,包括你打开从互联网下载的App时看到的Gatekeeper检查。它维护着存放系统策略的数据库。
在你打开App、安装软件或解压下载的文件时,它短暂活跃一下是正常的。
本页内容
syspolicyd为什么在占用CPU
它在检查代码。首次打开大型App、安装软件,或解压含有大量可执行文件的归档,都会让它要检查的东西变多。开发者在构建并运行大量新二进制文件时,可能会看到更多活动。
怎么处理
通常什么也不用做。等安装或首次启动完成,活动就会停止。不要试图停用它或它执行的安全检查。如果什么都没在做,它却长时间很忙,就重新启动Mac。
syspolicyd什么时候会忙
syspolicyd所支持的Apple功能会检查App的签名,对于下载的软件,还会检查它是否经过公证。也就是说,它的活动跟随着来到你Mac上的代码。
你下载的文件会带有隔离标记,告诉macOS在首次打开时检查它们。App一旦经过检查并获准运行,之后启动就不需要同样的首次审查,所以活动集中在新软件出现的时候。
- 首次打开从互联网下载的App。
- 安装或更新App,包括捆绑了大量组件的大型App。
- 解压包含App或命令行工具的归档或磁盘映像。
- 会生成并运行大量新可执行文件的开发工作,例如构建和安装软件包。
如何在“终端”中检查Gatekeeper
有两条只读命令可以显示系统策略的判断,不会改动任何东西。在打开某个App之前,想知道它是否已签名并经过公证时,这两条命令很有用。
- 运行
spctl --status。Gatekeeper检查处于打开状态(这是正常状态)时,它会显示assessments enabled。 - 对某个App的路径运行
spctl --assess -vv /Applications/AppName.app。输出会说明该App是否为accepted,并有一行source=,例如Notarized Developer ID或Apple System,告诉你原因。 - 要查看下载的文件是否仍带有隔离标记,运行
xattr -l ~/Downloads/FileName。有com.apple.quarantine条目,表示macOS会在首次打开它时进行检查。
不要做的事
不要为了省CPU而关闭Gatekeeper、停用系统完整性保护或退出syspolicyd。这些改动会拿掉阻止不受信任软件运行的检查,而且syspolicyd反正也不会一直停着。
也不要用xattr去掉下载文件的隔离标记来跳过首次启动检查。正是这个标记让macOS在运行来自互联网的软件之前检查它,去掉它会绕过这项检查,而日常使用中Mac也不会因此变快。
如果macOS阻止了你信任的App,请用受支持的方式打开它:尝试打开一次后,前往苹果菜单>“系统设置”>“隐私与安全性”,向下滚动,然后点按“仍要打开”。该App会被存为例外,此后就能正常打开。
syspolicyd的正常占用与异常情况
正常:打开、安装或解压软件时,CPU短暂活跃,工作完成后就结束。开发者会看到更多这样的活动,因为工具或App的每次新构建都是可能需要检查的新代码。
值得检查:你没有在安装或打开任何东西,syspolicyd却长时间很忙。看看是否有东西在后台安装,例如某个App的更新程序,并让它完成。如果什么都没在做,活动仍在继续,就重新启动Mac。
常见问题
Mac上的syspolicyd是什么?
它是系统策略守护进程。它决定软件能否被安装或运行,并支持macOS在打开App前进行的检查。
syspolicyd是恶意软件吗?
不是。它是macOS安全机制的一部分。
应该停用syspolicyd吗?
不应该。它执行的检查能保护你的Mac免受不受信任的软件侵害。让当前活动完成;如果它似乎卡住了,就重新启动。
macOS更新后syspolicyd为什么在占用CPU?
更新之后往往紧跟着App更新和App的首次启动,每一项都可能涉及策略检查。这些工作完成后,活动就会平静下来。
syspolicyd和Gatekeeper是一回事吗?
Gatekeeper是你能看到的功能,syspolicyd则是掌管其背后策略的系统进程。macOS的其他部分会向syspolicyd询问软件能否运行。
如何打开被macOS阻止的App?
先尝试打开一次,然后前往“系统设置”>“隐私与安全性”,点按“仍要打开”。只对来源可信的软件这样做。
相关条目
想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。