ubuntu桌面系统,一般人很少去看系统日志,因为正常情况下很多不会产生太多影响,甚至可以自我调整。但是追求极致稳定,性能人朋友肯定会关注系统的一举一动。以下异常在我的系统日志中存留已久了。
系统日志信息
4月 17 09:48:40 Mt gnome-shell[1705]: Unhandled promise rejection. To suppress this warning, add an error handler to your promise chain with .catch() or a try-catch block around your await expression. St>
refreshPropertyOnProxy@/usr/share/gnome-shell/extensions/ubuntu-appindicators@ubuntu.com/util.js:43:38
_translateNewSignals/<@/usr/share/gnome-shell/extensions/ubuntu-appindicators@ubuntu.com/appIndicator.js:212:18
_translateNewSignals@/usr/share/gnome-shell/extensions/ubuntu-appindicators@ubuntu.com/appIndicator.js:211:50
_onProxySignal/<@/usr/share/gnome-shell/extensions/ubuntu-appindicators@ubuntu.com/appIndicator.js:228:56
_onProxySignal@/usr/share/gnome-shell/extensions/ubuntu-appindicators@ubuntu.com/appIndicator.js:228:38
这个日志直接锁定了问题根源:
报错全部来自 ubuntu-appindicators@ubuntu.com 这个官方自带的应用指示器扩展,它代码有 bug,导致 GNOME Shell 疯狂抛错。
之前遇到的:
Can't update stage views actor- 桌面卡顿、闪烁、不稳定
全都是这个扩展引起的!
10 秒彻底修复(只需一条命令)
直接卸载 / 禁用这个问题扩展,所有报错立刻消失:
# 卸载这个有bug的官方扩展
sudo apt remove gnome-shell-extension-appindicator -y
# 重启 GNOME Shell
killall -SIGQUIT gnome-shell
执行完,所有报错都会彻底消失,桌面立刻恢复流畅。
为什么会这样?
ubuntu-appindicators是 Ubuntu 自带的顶部栏应用指示器扩展(显示微信、QQ、网盘、输入法托盘图标)- 它在新版 GNOME 里有代码 bug,导致
Promise 未捕获异常 - 这个 bug 会连锁导致 GNOME 界面渲染崩溃,也就是之前看到的
stage views报错
如果你还需要托盘图标(可选)
如果你需要显示应用托盘图标(比如微信、输入法),可以安装更稳定的替代品:
sudo apt install gnome-shell-extension-appindicator-ng -y
这个是修复版,不会报错。
总结
- 真凶:
ubuntu-appindicators扩展(Ubuntu 自带的托盘扩展) - 修复:
sudo apt remove gnome-shell-extension-appindicator - 效果:所有 GNOME 报错、卡顿、闪烁全部消失