You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4 Ubuntu22.04 Server下CLI启动Electron应用报DISPLAY缺失错误

解决树莓派Ubuntu Server下启动Electron应用的DISPLAY错误

错误原因

你遇到的Missing X server or $DISPLAY错误,是因为Electron找不到X服务器的会话标识。你提到的DISPLAY=$HOST_IP:10.0是远程X转发的配置,不适合本地直接启动X的场景,本地应该用:0作为DISPLAY值。

解决步骤

1. 确保X环境安装完整

如果只装了基础X,建议补充轻量窗口管理器(适配亭模式):

sudo apt update && sudo apt install xorg openbox

2. 临时设置DISPLAY并启动应用

在启动Electron前,手动设置环境变量:

export DISPLAY=:0
# 替换成你的Electron应用实际路径
/path/to/your/electron/app

如果是在startx启动的X会话里执行,这个设置通常会自动生效,若未生效再手动执行上述命令。

3. 配置开机自动启动(亭模式)

方式1:用.xinitrc自动启动应用

编辑用户目录下的.xinitrc文件(不存在则新建):

nano ~/.xinitrc

写入以下内容(替换应用路径):

# 禁用屏幕保护、休眠
xset s off
xset -dpms
xset s noblank

# 强制Electron使用X11(规避Wayland兼容问题)
export DISPLAY=:0
/path/to/your/electron/app --ozone-platform=x11

保存退出后,执行startx即可启动X并自动运行你的应用。

方式2:用systemd实现开机自动启动X

创建用户级systemd服务:

nano ~/.config/systemd/user/xsession.service

写入:

[Unit]
Description=X Session for Kiosk Mode
After=network.target

[Service]
ExecStart=/usr/bin/startx
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

保存后启用并启动服务:

systemctl --user enable xsession.service
systemctl --user start xsession.service

这样开机后会自动启动X和你的Electron应用。

4. 权限排查

如果仍报错,检查当前用户是否有权限访问X服务器,临时开放权限:

xhost +

若要永久开放,可把xhost +加到.xinitrc文件中。

内容的提问来源于stack exchange,提问作者Cornelius Qualley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:35:28