Answers:
肯定会在iOS 11和macOS 10.13上记录此错误,并且在任何平台上都不会导致任何特定功能或问题。
我将在此处链接有关“ macOS日志过多”的主要问题,因为这是一种意见和印象,值得讨论。如果没有消息,除非真正严重的状况需要采取行动,否则有些人可能会感觉更好。其他人则需要更多细节,以便他们可以了解正在发生的事情/学习/衡量的事情。因此,如何对这些问题进行分类/使用将是一个权衡。
霍华德·奥克利(Howard Oakley)是一位拥有一些工具的有趣开发者,他在https://eclecticlight.co/上发表博客。
他的下载页面上有两个有趣的应用程序(使用左侧下载链接,因为下面的产品版本是beta版,一天或一周内可能不是最新版本):
我可以验证此问题的合法性。昨天我遇到了同样的问题,重新启动后,由于此错误,计算机几乎变得无用。由于某种原因,该计算机本月无法处理,并且在有数据库或访问者的任何地方引发错误。
要解决此问题:
打开活动监视器和强制退出两个过程:lsd
,UserEventAgent
打开系统偏好设置,然后导航至“日期和时间”
取消选中“自动设置日期和时间”
在日历中,选择2017年12月之前的日期,然后按保存
如果UserEventAgent
还是lsd
继续造成问题,请在设置日期后再次强制退出。
为什么?
在我看来,UserEventAgent试图使用两个plist文件:
System/Library/LaunchAgents/com.apple.UserEventAgent-Aqua.plist
和
System/Library/LaunchAgents/com.apple.UserEventAgent-LoginWindow.plist
当它尝试使用塑料桩时,出现错误:
Month 13 is out of bounds
我不确定UserEventAgent内实际上发生了什么,但是很明显,当收到错误时,它无法处理该错误并导致较高的CPU和RAM使用率。
从2017年12月开始,UserEventAgent CPU和内存使用率过高,我也遇到了同样的问题。如上所述,控制台显示“月份超出范围”错误。
我尝试了磁盘实用程序“急救”,重新启动,安全模式(以清除系统缓存),清除NVRAM和SMD,没有任何帮助。我确实注意到,在安全模式下,CPU和内存使用率并未达到峰值。
像@tgray和u / kidtexas一样,在某些时候,我发现如果禁用所有自定义启动的plists,则不会发生此问题。
我最终写了下面的小脚本来帮助我调试导致问题的plist。它最终成为一个在每个月的第一天运行的plist:
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>03</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
我的许多专家都使用该StartCalendarInterval
密钥,使用下面的脚本,我可以证明它们似乎并没有引起尖峰的RAM和内存问题,因此,对于一个特定的plist为何会导致此问题,我尚不完全清楚。无论如何,这就是我整理出来的方式。
我强烈建议读者浏览脚本以尝试了解脚本的功能,而不仅仅是复制和粘贴。具体来说,按照本文所述,此方法仅适用于~/Library/LaunchAgents
(而不是/Library/LaunchDaemons
其他)使用者,并且有意仅测试其文件名并<key>Label</key>
遵循特定模式的使用者com.USERNAME.my_plist_name[.plist]
。在运行它之前,我对bootout
所有plists都使用了一个衬里for plist in com."$(whoami)".*.plist; do launchctl bootout gui/"${MYUID}"/"${plist%.plist}" || true; done
,然后验证它们不再出现在launchctl list
结果中。
#! /bin/bash
# /apple/307512/month-13-is-out-of-bounds
set -euf -o pipefail
MYUID="$(id -u)"
pushd "${HOME}"/Library/LaunchAgents
while IFS= read -r -d '' plist; do
echo "${plist}"
stats=($(ps ux | grep -v grep | grep UserEventAgent | awk '{ print $3, $5}'))
cpu="${stats[0]}"
vmem="${stats[1]}"
echo "CPU use and virtual memory size while disabled: ${stats[@]}"
launchctl bootstrap gui/"${MYUID}" "${plist}"
sleep 5
stats=($(ps ux | grep -v grep | grep UserEventAgent | awk '{ print $3, $5}'))
echo "CPU use and virtual memory size while enabled: ${stats[@]}"
echo "Change in vmem: $(( "${vmem}" - "${stats[1]}" ))"
echo
done < <(find . -iname "com.$(whoami).*.plist" -print0)
popd
bootout
n8henrie建议的(或类似程序)。
像其他人一样,我从UserEventAgent获得了很高的CPU使用率和巨大的RAM使用率(请参见上面的评论)。将日期更改为11月并强制退出UserEventAgent,以解决问题。这一切都在我重启后的星期六开始。
我为我解决了这个问题。希望对于有问题的其他人,这对您有用。
问题是我在〜/ Library / LaunchAgents中有一个LaunchAgent plist。这是一个简单的plist文件,它调用StartCalendarInterval,这是启动的plists的有效密钥。LaunchAgent作业调用一个Shell脚本,该脚本在每月的第一天将一些文件复制到备份位置。根本没有调用该作业-我认为它已启动,并对照引起问题的Calendar检查加载的作业。我卸载此plist并将文件移出目录后,UserEventAgent正常(在强制退出后)。我第二次加载了plist(launchctl加载xxxx),UserEventAgent疯了。
如在Apple的文档中所示,StartCalendarInterval是一个有效的启动密钥。
因此,对于任何有问题的人,请检查您的LaunchAgent目录并查找StartCalendarInterval项(或其他任何与日历相关的项)。我没有任何关于基于时间间隔的问题。
注意:这不能解决“第13个月超出范围”错误,而不能解决疯狂的UserEventAgent行为。
在向苹果公司报告并扩展升级链之后,我被告知应该在macOS 10.13.3中解决此问题。
显然,这是由调用不推荐使用的NSDate过程'descriptionWithCalendarFormat'的应用程序引起的。
您可以在https://forums.developer.apple.com/thread/88417上阅读更多内容。
在某些情况下,编辑或删除某些plist文件将阻止程序调用不建议使用的过程,但真正的解决方法是操作系统更新。