linuxQQ安装后双击启动无响应,提示追踪与中断点陷阱 (核心已转储)

终端报错内容:

root@ubuntu:~/Desktop# qq
[0415/140821.298504:FATAL:electron_main_delegate.cc(295)] Running as root without –no-sandbox is not supported. See https://crbug.com/638180.
追踪与中断点陷阱 (核心已转储)

这个错误表明你以 root 用户 运行 QQ(Linux 版),但 Electron 框架(QQ 使用的底层技术)出于安全考虑,默认禁止 root 用户直接运行。


[TOC]

解决方案:

1. 解决方案一:使用 –no-sandbox 参数

1
2
# 添加参数运行 QQ
qq --no-sandbox

注意:这会降低安全性,仅建议临时使用。

2. 解决方案二:创建普通用户运行(推荐)

1
2
3
4
5
6
7
8
# 创建新用户
sudo adduser qquser

# 切换到新用户
sudo -i -u qquser

# 在新用户环境下运行 QQ
qq

3. 解决方案三:修改 QQ 启动器

1. 定位QQ桌面快捷方式

1
2
# 查找QQ桌面文件位置
sudo find / -name "*qq*.desktop" 2>/dev/null

通常路径为:

/usr/share/applications/qq.desktop

/opt/QQ/qq.desktop

2. 修改启动器文件

以/usr/share/applications/qq.desktop为例

1
sudo nano /usr/share/applications/qq.desktop

3. 修改Exec行

添加–no-sandbox

1
2
3
4
[Desktop Entry]
...
Exec=qq --no-sandbox %U # 关键修改
...

4. 更新桌面数据库

1
sudo update-desktop-database

5. 创建安全封装脚本(推荐)

1
sudo nano /usr/local/bin/qq-safe

内容:

1
2
3
4
5
6
7
#!/bin/bash
# 限制仅允许普通用户运行
if [ "$(id -u)" -eq 0 ]; then
echo "Error: QQ should not run as root!"
exit 1
fi
exec qq --no-sandbox "$@"

赋予权限:

1
sudo chmod +x /usr/local/bin/qq-safe

6. 修改启动器指向新脚本

1
sudo nano /usr/share/applications/qq.desktop

修改为:

1
Exec=/usr/local/bin/qq-safe %U

验证步骤

通过应用菜单启动QQ

检查进程权限:

1
ps aux | grep -i qq | grep -v grep

应显示:

youruser 1234 0.5 2.1 … qq –no-sandbox

备选方案(若仍崩溃)

A. 使用–disable-gpu-sandbox双重参数

1
sudo sed -i 's|Exec=.*|Exec=qq --no-sandbox --disable-gpu-sandbox %U|g' /usr/share/applications/qq.desktop

B. 设置Chromium标志

1
2
mkdir -p ~/.config/QQ
echo '--no-sandbox' > ~/.config/QQ/electron-flags.conf

安全警告

长期使用–no-sandbox会降低安全性
建议最终采用 普通用户方案:

4. 解决方案四:使用 Deepin-Wine 版 QQ

1
2
3
4
5
6
7
8
# 安装 Deepin-Wine 环境
wget -O- https://deepin-wine.i-m.dev/setup.sh | sh

# 安装 QQ
sudo apt install com.qq.im.deepin

# 运行(无需 root)
deepin-wine6-stable ~/.deepinwine/Deepin-QQ/drive_c/Program\ Files/Tencent/QQ/Bin/QQ.exe

错误原因说明

  • 安全沙箱(Sandbox):Electron 应用默认启用沙箱隔离,root 用户会触发保护机制

  • 核心转储:因权限问题导致进程崩溃

永久修复建议

避免以 root 运行图形应用

如果必须用 root,可配置系统策略:

1
sudo sysctl kernel.unprivileged_userns_clone=1

验证是否修复

1
2
3
# 检查 QQ 进程
ps aux | grep -i qq | grep -v grep
# 应显示普通用户权限