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

本文使用自动化工具创建应用程序来一键运行脚本重启简体中文输入法的进程,从而解决macOS的假死问题。如果只想看看解决方法的话,可以跳转到"使用'自动化'工具建立应用程序"段落。

引言

我的电脑使用习惯可谓是很差,软件一直常驻后台,电脑几乎除了系统更新都不关机,合上盖子就算是让她休息了。本以为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命令,把进程杀掉即可。重启就不需要了,杀掉他后他会自动重启,而杀掉他后系统的卡死状态也会得到恢复。简化一下指令,只需要一段命令即可

bash 复制代码
pgrep -f "/System/Library/Input Methods/SCIM.app/Contents/PlugIn" | xargs kill -HUP

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

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

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

bash 复制代码
pgrep -f "/System/Library/Input Methods/SCIM.app/Contents/PlugIn" | xargs kill -HUP

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

bash 复制代码
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中。然而默认的自动化程序图标十分的丑陋,幸运的是我们可以很方便的进行更改。

更改自动化生成的 App 图标

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

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

结尾碎碎念

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

相关推荐
可爱分享10 小时前
锂电设备用哪种直线模组更稳?威洛博在极片、卷绕、模切工站的应用
自动化·线性回归·直线模组·机器人末端执行器·线性导轨
Blossom.11810 小时前
知识图谱增强大模型:构建可解释的行业智能搜索引擎
运维·人工智能·python·智能手机·自动化·prompt·知识图谱
映翰通网络10 小时前
自动化产线,如何真正走向“可控、可见、可远程”的智能化?
运维·自动化·工厂数字化
AC赳赳老秦10 小时前
Go语言微服务文档自动化生成:基于DeepSeek的智能解析实践
大数据·开发语言·人工智能·微服务·golang·自动化·deepseek
0和1的舞者10 小时前
《GUI 自动化详解(二):控件、鼠标键盘与菜单列表操作全指南》
开发语言·自动化测试·python·测试开发·自动化·测试
无心道人c10 小时前
SonarQube7.6实现C#自定义规则
单元测试·自动化·sonar
霍格沃兹测试开发学社测试人社区11 小时前
Playwright测试策略:顺序、并行及分布式执行方案
分布式·自动化·playwright
我送炭你添花11 小时前
Pelco KBD300A 模拟器:07+1.宏脚本编辑器与模板库管理实现细节
python·自动化·编辑器·运维开发
洪大宇11 小时前
Mac 使用蓝牙功能
macos
Wpa.wk11 小时前
接口自动化测试 - REST-assure小练习(Java版-分层)
java·开发语言·经验分享·python·自动化·接口自动化·po