Ubuntu 下 aTrustTray2 反复崩溃导致 apport 占用 CPU

最近在 Ubuntu 上运行深信服 aTrust 时,发现 apport 进程会不定期占用较高 CPU。

一开始查看:

ps -ef | grep -E 'apport|aTrust'

发现 apport 是因为 aTrustTray2 崩溃后被系统拉起,且 aTrustTray2 的 PID 一直变化,说明它在反复:

启动 → 崩溃 → 被重新拉起

崩溃信号为:

SIGABRT

进一步手动运行:

QT_DEBUG_PLUGINS=1 \
/usr/share/sangfor/aTrust/resources/bin/aTrustTray2 -l zh-CN

发现报错:

This application failed to start because it could not find or load the Qt platform plugin "xcb"

继续检查发现,aTrust 自己其实已经带了 libqxcb.so:

find /usr/share/sangfor/aTrust -name 'libqxcb.so'

结果:

/usr/share/sangfor/aTrust/resources/lib/libqxcb.so

但 aTrustTray2 默认搜索的路径却是:

/usr/share/sangfor/aTrust/resources/bin/platforms

而这个目录不存在。

最终通过创建目录并添加软链接解决:

sudo mkdir -p /usr/share/sangfor/aTrust/resources/bin/platforms

sudo ln -s \
/usr/share/sangfor/aTrust/resources/lib/libqxcb.so \
/usr/share/sangfor/aTrust/resources/bin/platforms/libqxcb.so

修复后,aTrustTray2 不再反复崩溃,apport 也不再持续占用 CPU。

问题本质上是:

aTrust 自带 Qt xcb 插件
↓
插件实际位于 resources/lib
↓
程序却只搜索 resources/bin/platforms
↓
找不到插件后 SIGABRT
↓
apport 不断处理崩溃

如果以后升级或重装 aTrust 后问题再次出现,可以优先检查:

ls -l /usr/share/sangfor/aTrust/resources/bin/platforms/libqxcb.so

看这个软链接是否还存在。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注