重启后自定义 Firefox 服务无法启动

重启后自定义 Firefox 服务无法启动

我目前正在为当地一个体育俱乐部建造一个信息亭,但遇到了一些问题。

由于一开始必须加载多个页面,我选择使用将使用 ubuntu-frame 的 Firefox。

您可以在这里找到完整的配置和安装指南:https://gitlab.com/raQai/firefox-kiosk

在测试期间,它kiosk.service启动正常,而且我能够多次停止/重新启动它。一旦我启用该服务并重新启动计算机,Firefox 就无法打开,我只能停留在空白的屏幕上ubuntu-frame

有趣的是:我根本无法启动该服务,也找不到任何可以解释这种行为的日志......

最近才了解到,ubuntu-frame所以这可能是我在这里尝试做的完全是胡说八道。请帮忙 :)

[Unit]
Description=Firefox Kiosk
After=snap.ubuntu-frame.daemon.service
After=getty.target
Conflicts=display-manager.service
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
Environment=WAYLAND_DISPLAY=wayland-0
Environment=MOZ_ENABLE_WAYLAND=1
Environment=HOME=/root
Environment=XDG_RUNTIME_DIR=/run/user/0
Environment=XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
ExecStart=firefox-esr -P default
Nice=15

[Install]
WantedBy=graphical.target
systemctl status kiosk
○ kiosk.service - Firefox Kiosk
     Loaded: loaded (/etc/systemd/system/kiosk.service; disabled; vendor preset: enabled)
     Active: inactive (dead)

Jan 21 15:47:34 rq-ThinkPad-X201 systemd[1]: Started Firefox Kiosk.
Jan 21 15:47:35 rq-ThinkPad-X201 firefox-esr[2641]: Missing chrome or resource URL: resource://gre/modules/UpdateListener.jsm
Jan 21 15:47:35 rq-ThinkPad-X201 firefox-esr[2641]: Missing chrome or resource URL: resource://gre/modules/UpdateListener.sys.mjs
Jan 21 15:47:35 rq-ThinkPad-X201 systemd[1]: kiosk.service: Deactivated successfully.

更新 1:通过禁用该进程,终止所有与 Firefox 相关的进程并运行

sudo \ 
  WAYLAND_DISPLAY=wayland-0 \
  MOZ_ENABLE_WAYLAND=1 \
  HOME=/root
  XDG_RUNTIME_DIR=/run/user/0 \
  XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop \
  DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus \
  firefox-esr -P default

我发现 Firefox 启动时会弹出一个窗口,提示:

Firefox 在启动时意外关闭。这可能是由附加组件或其他问题引起的。您可以尝试通过安全模式进行故障排除来解决问题。

该命令立即退出,与0没有崩溃对话框时启动时的行为不符。单击按钮Open会按预期启动 Firefox,但命令行不再管理此过程。定期关闭 Firefox 并再次运行该命令,我可以按预期启动 Firefox,并且该进程仍保留在当前 shell 中,直到exit 0窗口关闭。

我猜测该服务遇到了问题,因为它由于这种exit 0行为而不断重启。

每次进程被终止时都会发生这种情况,例如,Ctrl+C如果进程是从命令行启动的,则使用。我实际上希望能够终止该进程,因为如果没有用户与信息亭交互,我想终止它。这意味着我需要能够忽略此对话框,并且exit 0除非进程实际上被终止/关闭,否则不会终止。

有任何想法吗?

答案1

看来我在更新 1 中的发现是正确的。

而且似乎无论通过什么方式(例如首选项或MOZ_CRASHREPORTER_DISABLE=1)都无法忽略错误/崩溃对话框。

为了“修复”这个问题,我引入了一个新脚本现在将清理整个.mozilla文件夹并将预期的 css 文件复制回原位。同时,ExecStartPre每当服务重新启动时,基本上都会清除所有数据并完全忽略以前的会话。

相关内容