每当我单击桌面 Teams 客户端中的 HTTP(S) 链接时,它会挂起大约 5 秒钟,然后我收到一条错误消息:“Firefox 已经在运行,但没有响应。要使用 Firefox,您必须先关闭现有进程,重新启动您的设备,或使用其他配置文件。”
不用说,我的 Firefox 正在运行、响应并打开了很多标签。我无意关闭它或使用其他配置文件。
当我点击其他程序(如 Thunderbird、Telegram 等)中的任何链接时,没有这样的问题......
如果我在打开此消息的情况下执行“ps -ef”,我会看到以下进程树:
rakula 30542 30440 0 11:42 pts/10 00:00:00 /opt/firefox/firefox-bin https://URL <-- the "message" process
rakula 30440 23518 0 11:42 pts/10 00:00:00 /bin/sh /usr/bin/xdg-open https://URL
rakula 23518 1 0 11:14 pts/10 00:00:15 /opt/teams/teams --disable-namespace-sandbox --disable-setuid-sandbox
“https://URL”是我点击的链接。“rakula”是我的用户名,我的 X11 会话正在此用户下运行。
如果我从终端 (urxvt) 手动运行“/bin/sh /usr/bin/xdg-open https://URL”,它会按预期工作 - 在正在运行的 Firefox 窗口中打开一个新选项卡。我很困惑 - 我手动运行此命令和团队运行相同命令之间可能有什么区别 - 为什么后者的行为不同?
Gentoo Linux, dwm, Firefox 99, Teams 1.4.00.26453-r1 Firefox 是从 portage firefox-bin 包安装的,Teams 也是从 portage 安装的。此问题在不同版本的 Firefox 和 Teams 之间仍然存在。我在使用 Debian Linux 和 KDE 时没有遇到过这个问题。
事实证明,Teams
DBUS_SESSION_BUS_ADDRESS=disabled:
出于某种未知原因导出。我创建了一个简单的包装脚本并将其放入
/usr/local/bin/firefox-wrapper.sh
:并编辑
/usr/share/applications/firefox-bin.desktop
,设置 Exec= 指向我的包装脚本。