肇鑫的日常博客

日常

Safari登录时非常卡顿问题的解决

一直用通行密钥登录。可是最近突然用不了了,会界面一直卡住,只能通过密码的方式来登录。

我尝试了常规的办法,比如清空Safari的数据。没有作用,然后我又尝试打开密码应用,删除掉一些过期的密码。还是没有作用。

我注意到spindump在这期间CPU占用会达到100%,我问了AI,AI说这个是Spotlight的工作进程,只要不一致100%,能自动恢复正常就没问题。于是我就放弃了这个线索。

这么将就用了两天,今天在浏览X的时候,看到有人提到自己为了追一个bug,把系统日志喂给AI,让AI逐一排查。我一想,这是个好主意啊。于是我又开始研究这个问题。

正式研究

我先打开控制台应用,然后点击开始。我一开始过滤的是Safari的日志,但是把错误和故障的日志发给AI后,AI的答案没啥用。

于是我又把日志范围扩大到我操作期间的所有系统日志,结果发现了一个这样的故障。

AuthenticationServicesAgent	
Failed to acquire lock for -[ASCAgent cancelCurrentRequest]_block_invoke

但是AI对于这个问题也没啥好办法。

于是我取消了日志所有的过滤器。结果看到满屏的Spotlight的日志。于是我禁用了SpotLight的索引。然后再试,结果还卡。重启,不卡了。

结论

用户在登录时,会先调用密码应用查询用户名,然后通过密码或者通行密钥登录。在这个过程中,会卡顿几次:

  1. 查询用户名时卡一次。
  2. 选择用户名时卡一次。
  3. 选择通行密钥登录时一直卡。

也就是说,1和2时遇到了缓慢的问题,而3遇到了没有查询结果的问题。

而每次遇到这种情况,macOS的处理方式,就是使用Spotlight重新对于相关内容(密码应用的数据)进行索引。这进一步造成了卡顿。

建议的解决步骤

router

禁用Spotlight的方法

将系统和用户自身文件夹所在的磁盘分区,加入到Spotlight的搜索隐私。恢复则移除即可。

brew应用无法卸载问题的解决

问题

zhaoxin@Mac-mini ~ % brew remove inkscape --cask
==> Uninstalling Cask inkscape
==> Purging files for version 1.4.028868 of Cask inkscape
zhaoxin@Mac-mini ~ % brew info inkscape
==> inkscape: 1.4.230579
https://inkscape.org/
Installed
/opt/homebrew/Caskroom/inkscape/1.4.028868.upgrading (64B)
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/i/inkscape.rb
==> Name
Inkscape
==> Description
Vector graphics editor
==> Artifacts
Inkscape.app (App)
/opt/homebrew/Caskroom/inkscape/1.4.230579/inkscape.wrapper.sh -> inkscape (Binary)
==> Analytics
install: 3,464 (30 days), 9,907 (90 days), 32,521 (365 days)

解决办法

Here’s how you can fully remove Inkscape:

  1. Uninstall the Remaining Version

Run the following command to uninstall the remaining version of Inkscape:

brew remove --cask inkscape
  1. Verify Uninstallation

After running the uninstall command, verify that Inkscape is no longer installed:

brew info inkscape

If Inkscape is still listed as installed, you may need to manually remove any leftover files.

  1. Manually Remove Leftover Files

If Homebrew didn’t fully remove the application, you can manually delete the remaining files:

• Application File:

rm -rf /Applications/Inkscape.app

• Caskroom Directory:

rm -rf /opt/homebrew/Caskroom/inkscape
  1. Clean Up Homebrew

Finally, clean up any unused files and caches in Homebrew:

brew cleanup
  1. Verify Again

Run brew info inkscape once more to confirm that Inkscape has been completely removed.

一次有趣的Mac夜晚间隔性唤醒故障的解决经历

最近我的Mac mini在夜晚睡眠之后,经常被多次唤醒,间隔大概在1小时左右。因为每次唤醒,都会导致显示器亮屏,造成原本黑暗的屋内变亮,影响睡眠。

我用命令查看是什么原因导致了系统的唤醒。发现说是蓝牙或是USB设备导致的。我初步怀疑是最近我开始重新使用的蓝牙键盘IKBC DC-87的原因。我选择关闭键盘的开关。之后故障消失。

原本以为这样就可以了。但是我今天使用键盘打字的时候,突然键盘就没响应了。更换电池之后,一切正常。原来仅仅是电池没电了。

这样想来,原本的故障,其实就是电池电量低了。从而导致键盘一会儿有电,一会儿没电。而电池重新有电的时候,会尝试和配对设备连接。从而导致Mac被唤醒。

结论:以后遇到这种故障,提前换电池就可以了。