系统 -> Ubuntu 22.04 LTS
Firefox -> Mozilla Firefox 110.0(不使用 snap firefox)
用例 -> 在系统启动时将 Firefox 作为系统服务启动。
创建服务如下 ->
[Unit]
Description=Firefox service as startup app
BindsTo=graphical.target
PartOf=graphical.target
After=graphical.target
[Service]
Type=simple
User=user1
Group=user1
Environment=DISPLAY=':0'
Environment=XAUTHORITY='/run/user/1000/gdm/Xauthority'
ExecStart=firefox
[Install]
WantedBy=multi-user.target
已验证环境变量 DISPLAY 默认为 :0
在正常情况下,手动启动服务时,firefox 将作为服务启动。
启动后,服务失败并出现以下错误 “localhost.localdomain firefox[878]: 错误:无法打开显示::0”
有什么办法可以解决这个问题吗?
答案1
这个错误是因为当服务想要启动 Firefox 时 X 服务器还没有准备好,您可以将 Firefox 添加到启动应用程序中,或者如果您想保留 systemd 服务解决方案,您需要添加xorg.target
并network.target
修改文件如下:
[Unit]
Description=Firefox service as startup app
BindsTo=graphical.target
PartOf=graphical.target
After=graphical.target x