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。希望这个文章能帮到遇到同样问题的朋友们,然后苹果啊,给点力啊=。=

相关推荐
小江村儿的文杰6 小时前
XCode Build时遇到 .entitlements could not be opened 的问题
ide·macos·ue4·xcode
天涯倦客的美丽人生8 小时前
2024年11月最新 Alfred 5 Powerpack (MACOS)下载
macos
SoraLuna8 小时前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie
总爱写点小BUG9 小时前
VM虚拟机装MAC后无法联网,如何解决?
macos
坐公交也用券13 小时前
使用Python3实现Gitee码云自动化发布
运维·gitee·自动化
施努卡机器视觉15 小时前
电解车间铜业机器人剥片技术是现代铜冶炼过程中自动化和智能化的重要体现
运维·机器人·自动化
徐浪老师15 小时前
深入实践 Shell 脚本编程:高效自动化操作指南
运维·chrome·自动化
King's King15 小时前
自动化立体仓库:详解
运维·自动化
东隆科技15 小时前
晶圆测试中自动化上下料的重要性与应用
运维·自动化
Cod_Next15 小时前
Mac系统下配置 Tomcat 运行环境
java·macos·tomcat