Firefox 已經在執行…錯誤,但僅來自 MS Teams
每當我點擊桌面 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
:#!/bin/bash unset DBUS_SESSION_BUS_ADDRESS /usr/bin/firefox-bin $*
並編輯
/usr/share/applications/firefox-bin.desktop
,設置 Exec= 指向我的包裝腳本。