本文使用自动化工具创建应用程序来一键运行脚本重启简体中文输入法的进程,从而解决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命令,把进程杀掉即可。重启就不需要了,杀掉他后他会自动重启,而杀掉他后系统的卡死状态也会得到恢复。简化一下指令,只需要一段命令即可
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中。然而默认的自动化程序图标十分的丑陋,幸运的是我们可以很方便的进行更改。
更改自动化生成的 App 图标
在Application文件夹中找到我们刚刚创建的app,右键get info后可以看到如下页面。
替换图标十分轻松与愉快,首先复制一张你喜欢的图片,随后到刚刚的界面,点击一下左上角的应用图标。你会发现图标四周出现了一圈蓝色的框框,此时按组合键CMD+V(也就是粘贴)就可以修改图标的样式。这样在下次你的MacBook也由于简体中文输入法而导致系统卡死时,你就有一个优雅且高效的”修复“方式。文章来源:https://www.toymoban.com/news/detail-802008.html
结尾碎碎念
这种所谓的解决方法或者是”修复”方式,其实只是暴力的“哪里坏了重启哪里”,并不能从根本上解决问题。据我所知,macOS自带的中文输入法多年来一直存在着各种各样的问题。如果想从根本上解决问题,可能还需要Apple方面努努力。自Apple全面迁移到arm架构后,已经过了大概三年多快四年了。迁移架构的确会带来各种方面的问题,但经过了这么久的时间,Apple Silicon的MacBook应该还远不能成为“成熟”。文章撰写过程中,“coreaudiod”进程,也就是音频核心进程就又出现了问题,让我不能再连上我的HomePod。从m1一路过来,苹果的确已经修复了很多问题,比如m1的蓝牙问题,外接显示器的问题,闪存过写入问题。但也有很多的可能是“无足轻重”的小问题,一直没有得到解决。比如,换一个输入法就可以解决,而且只存在于中国大陆的简体中文输入法问题(这么说是因为我也同时使用日文罗马音输入法,从未产生过类似的问题),很少人用得到的MacBook 使用AirPlay到HomePod。虽然现在我的MacBook可以满足我几乎所有的需求,但也许macOS已经不再是我心中那个,稳定而不出错的操作系统了,而那个intel的绝唱,Catalina,可能才是那个最稳定,最不会出错,理想中的那个macOS。希望这个文章能帮到遇到同样问题的朋友们,然后苹果啊,给点力啊=。=文章来源地址https://www.toymoban.com/news/detail-802008.html
附:超简单解决方案
- 将 Mac 自带的输入法卸载掉
- 安装市面上其他输入法(百度输入法,推荐)
(落格输入法,收费,但同样有这个BUG)
到了这里,关于MacOS - 简体中文输入法卡死解决方案(自动化脚本)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!