引言

我的电脑使用习惯可谓是很差,软件一直常驻后台,电脑几乎除了系统更新都不关机,合上盖子就算是让她休息了。本以为macOS能以一贯的稳定性支撑我的任性操作,但事与愿违。她经常会在不间断运行大概两周到一个月后,出现“假死”的情况。主要表现为鼠标转圈圈,很多操作都不能实现,不能输入文本,系统ui也响应十分慢,而资源监视却看不到很高的占用。一般出现此类情况只能关机或重启。我一度以为是电脑出现了硬件问题,拿去天才吧检测却是一切正常。后来在网上发现了一条吐槽macOS中文输入法导致死机的帖子,之后在后续出现的死机过程中,我忍着卡顿的操作去Activity Monitor中强制关掉了简体中文输入法,电脑瞬间就不卡了,这也是我一年来左右一直的解决方案。但是每次卡死就忍着卡顿去Activity Monitor关掉进程属实很麻烦,因此就有了这个方法,下面介绍下思路和具体的方案。

前置工作

使用ps或者kill all命令去抓Activity Monitor中的Process Name“Simplified Chinese Input Method”是行不通的,抓取Simplified Chinese是根本抓取不到任何信息。因此逆向思维一下,使用它提供的PID成功抓到了真正的程序叫做“/System/Library/Input Methods/SCIM.app/Contents/PlugIn”。接下来就简单多了,用pgrep获取进程的PID,然后传递PID给kill命令,把进程杀掉即可。重启就不需要了,杀掉他后他会自动重启,而杀掉他后系统的卡死状态也会得到恢复。简化一下指令,只需要一段命令即可

pgrep -f "/System/Library/Input Methods/SCIM.app/Contents/PlugIn" | xargs kill -HUP

但是每次在卡死的状态下输入这样一行代码依旧很困难。因此接下来我把它使用macOS自带的自动化工具包装成一个应用程序。这样就可以在每次系统出现问题的时候紧急救援(笑)

使用『自动化』工具建立应用程序

macOS自带的“自动化”应用程序十分强大,可以很方便的执行多样的任务。我们新建一个“应用程序”类别,然后添加“Run Shell Script“,在其中输入上述指令,也就是:

pgrep -f "/System/Library/Input Methods/SCIM.app/Contents/PlugIn" | xargs kill -HUP

这时候可以尝试运行一下,如果没有报错的话就可以进行下一步。我们这个应用程序实际上并不是传统意义上的应用程序,只需要它运行后就退出即可。因此我加了一段AppleScript在后面,用来执行退出应用程序的指令。同样是添加“Run AppleScript“,在其中输入:

tell current application
 delay 2 
 set quitapp to "Save" 
 tell application quitapp to quit...
 return "done"
end tell

这里面的“Save”是我的app名称,这里可以自己改成自己喜欢的,当然也记得要把app名称也进行相应的修改。在这之后就可以将app储存在Application文件夹中,这样他就会出现在Launchpad中。如果你喜欢的话,也可以把它固定在dock中。然而默认的自动化程序图标十分的丑陋,幸运的是我们可以很方便的进行更改。

MacOS - 简体中文输入法卡死解决方案(自动化脚本)-LMLPHP

更改自动化生成的 App 图标

在Application文件夹中找到我们刚刚创建的app,右键get info后可以看到如下页面。

MacOS - 简体中文输入法卡死解决方案(自动化脚本)-LMLPHP

替换图标十分轻松与愉快,首先复制一张你喜欢的图片,随后到刚刚的界面,点击一下左上角的应用图标。你会发现图标四周出现了一圈蓝色的框框,此时按组合键CMD+V(也就是粘贴)就可以修改图标的样式。这样在下次你的MacBook也由于简体中文输入法而导致系统卡死时,你就有一个优雅且高效的”修复“方式。

结尾碎碎念

这种所谓的解决方法或者是”修复”方式,其实只是暴力的“哪里坏了重启哪里”,并不能从根本上解决问题。据我所知,macOS自带的中文输入法多年来一直存在着各种各样的问题。如果想从根本上解决问题,可能还需要Apple方面努努力。自Apple全面迁移到arm架构后,已经过了大概三年多快四年了。迁移架构的确会带来各种方面的问题,但经过了这么久的时间,Apple Silicon的MacBook应该还远不能成为“成熟”。文章撰写过程中,“coreaudiod”进程,也就是音频核心进程就又出现了问题,让我不能再连上我的HomePod。从m1一路过来,苹果的确已经修复了很多问题,比如m1的蓝牙问题,外接显示器的问题,闪存过写入问题。但也有很多的可能是“无足轻重”的小问题,一直没有得到解决。比如,换一个输入法就可以解决,而且只存在于中国大陆的简体中文输入法问题(这么说是因为我也同时使用日文罗马音输入法,从未产生过类似的问题),很少人用得到的MacBook 使用AirPlay到HomePod。虽然现在我的MacBook可以满足我几乎所有的需求,但也许macOS已经不再是我心中那个,稳定而不出错的操作系统了,而那个intel的绝唱,Catalina,可能才是那个最稳定,最不会出错,理想中的那个macOS。希望这个文章能帮到遇到同样问题的朋友们,然后苹果啊,给点力啊=。=

01-18 13:36